質問: 検証のため、`multipart/form-data`で投稿した`POST`の生データを確認したいのですが、php で確認する方法はあるのでしょうか? php://input > > php://input は読み込み専用のストリームで、 リクエストの body 部から生のデータを読み込むことができます。 POST リクエストの場合は $HTTP_RAW_POST_DATA よりも php://input を使うのが望ましいでしょう。php.ini ディレクティブの設定に依存しないからです。 さらに、$HTTP_RAW_POST_DATA がデフォルトで設定されない場合は、 always_populate_raw_post_data を有効にするよりも $HTTP_RAW_POST_DATA を使うほうがメモリの消費量が少なくなるでしょう。 php://input は、 enctype="multipart/form-data" に対しては使用できません > > > とあり、`php://input`で取得出来ないことは確認できたのですが、取得できる方法が分かりませんでした。 パケットを拾うことも検討していますが、できればphpで対応したいと考えています。 $_POST で加工後(?)は確認できるのため、何らか方法があるのではないかと思っているのですが。。。 方法があれば、教えてください。 よろしくお願いします。 環境: XAMPP Apache 2.4.23 PHP 7.0.13 (VC14 X86 32bit thread safe) + PEAR Windows7
回答: PHP 5.4.0からは、enable_post_data_readingというパラメータをoffに設定すると、php://inputで生のPOSTボディを読み取れるようです。この場合、$_POSTや$_FILEは使えません。