PHP でのリクエスト ペイロードの取得
ExtJS や ajax ストアなどのフレームワークで PHP を利用する場合、リクエスト データがPOST や GET ではなく、リクエスト ペイロード経由で送信されます。このデータは Chrome コンソールの [リクエスト ペイロード] フィールドに JSON として表示されますが、$_POST と $_GET は空のままです。
PHP でこのペイロードを取得するには、次のスニペットを利用します:
$request_body = file_get_contents('php://input');
ペイロードが JSON 形式の場合は、次のように解析できます:
$data = json_decode($request_body);
変数 $data には JSON データが PHP 配列として含まれるようになります。
注意することが重要です。 「php://input」は、リクエスト本文から生データへの直接アクセスを容易にする読み取り専用ストリームです。 POST リクエストでは $HTTP_RAW_POST_DATA よりも優先され、$HTTP_RAW_POST_DATA がデフォルトで設定されないシナリオでは、「always_populate_raw_post_data」をアクティブにするよりメモリ効率の高い代替手段となります。ただし、「php://input」は「enctype="multipart/form-data」ではサポートされません。
以上がExtJS および Ajax ストアを使用して PHP でリクエスト ペイロードを取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。