Neden aksi söyleyerek kereden fazla belgelere rağmen okunabilir :/ / giriş php olabilir?

0 Cevap php

PHP belgelerine states o php://input sadece bir kez okunabilir.

Benim uygulamada bir kez doğrulama amaçlı ve bir kez aslında içeriği işlemek için, iki kez okumak gerekir, hem de işlevleri farklı, bağımsız modülleri tarafından işlenir. Çılgın şey: it works.

Ben her yerde bu çalışma saymak, ya da bu PHP (5.2.10) benim sürümü bir tesadüftü olduğunu miyim? Ben bu konuda bulabileceğiniz tek belge bu sözü hiçbir sürüm sınırlaması ile, çalışması gerektiğini belirtiyor biridir.


Dennis 'önsezi ardından, ben bu testi yaptım:

$in = fopen('php://input', 'r');
echo fread($in, 1024) . "\n";
fseek($in, 0);
echo fread($in, 1024) . "\n";
fclose($in);
echo file_get_contents('php://input') . "\n";

Curling:

$ curl http://localhost:8888/tests/test.php -d "This is a test"
This is a test

This is a test

Anlaşılan o ki, bir read per open handle ile sınırlı.


Biraz daha gerçekten php://input sadece bir kez okunabilir olduğunu ortaya kazılarda, şimdiye kadar, for PUT requests. Yukarıdaki örnek bir POST isteği kullanılır.

0 Cevap