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.