ドキュメントに従って、常にphp://inputHTTP 要求本文が含まれているとは限りません。
スクリプトの開始時に常にストリームを開き、ユーザー アプリケーションで利用できるようにするコードがいくつかあります。
$stream = fopen('php://input', 'rb');
ユーザー アプリケーションが空のストリームから読み取ろうとするとContent-Length > 0、ライブラリに例外をスローさせたい:
リクエストボディは利用できません。
私の問題は次のとおりです。
- ストリームが空の場合、呼び出されていないときに
feof()戻ります。falsefread() - このストリームはシークをサポートしていないため、
fread()1 バイトはできません。fseek() - 別のストリームを開い
php://inputて事前に読み取ろうとすることはできません。これは、このストリームが複数回利用可能であることに依存できないためです。 - パフォーマンス上の理由から、ユーザー アプリケーションに手を渡す前にやみくもにコピー
php://inputしたくありません。php://temp
その結果、 の直後にデータが含まれているかどうかを判断することは可能ですかphp://inputfopen()fread()?