PHP での POST データへのアクセス: JSON 本文のデコード
PHP で POST リクエストを処理するには、リクエスト本文にアクセスして送信されたデータを抽出する必要があります。 JSON エンコードされた本文を受信するときは、適切な方法を使用して必要な情報を取得することが重要です。
JSON 抽出
POST 本文内の JSON データにアクセスするには、$_POST に依存しないでください。代わりに、 file_get_contents('php://input'):
$json_input = file_get_contents('php://input'); $data = json_decode($json_input, true);
を使用します。これにより、生の POST 本文が文字列として読み取られ、json_decode() を使用して PHP 配列にデコードされます。
multipart/form-data の処理
POST リクエストがmultipart/form-data エンコーディングでは、データは $_POST スーパーグローバルに自動的に解析されます。ただし、この場合、php://input を使用して生の JSON 本文にアクセスできないことに注意してください。
例
たとえば、次のような POST リクエストを送信するとします。次の JSON 本文:
{"a": 1}
PHP コードは次のようにデコードできます。
$json_input = file_get_contents('php://input'); $data = json_decode($json_input, true); var_dump($data['a']); // Outputs: 1
シーク可能性に関する注意
php://input はシーク可能ではありません。つまり、一度しか読み取ることができません。複数の読み取り操作のためにストリームを保存する必要がある場合は、stream_copy_to_stream() を使用して一時ストリームを構築するか、メモリ管理を改善するために php://temp を使用することを検討してください。
以上がPHP で JSON POST データに適切にアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。