PHP で POST リクエストボディを JSON として取得する方法?
JSON データを POST として PHP ページに送信するときに、その値にアクセスすると、 var_dump($_POST) のように、難しいように思えます。空の配列を返します。 JSON ペイロードを取得するには、特別な入力ストリームが必要です。
php://input または STDIN を使用する
POST リクエストの生のエンティティ本文にアクセスするには:
$entityBody = file_get_contents('php://input');
または、次のようにすることもできます。 STDIN:
$entityBody = stream_get_contents(STDIN);
php://input 考慮事項
php://input の可読性の維持
php://input はシーク不可能なので、一度しか読み取れません。入力ストリームを保持するには:
function detectRequestBody() { $rawInput = fopen('php://input', 'r'); $tempStream = fopen('php://temp', 'r+'); stream_copy_to_stream($rawInput, $tempStream); rewind($tempStream); return $tempStream; }
マルチパート/フォーム データ リクエストの処理
マルチパート/フォーム データ リクエストの場合、JSON ペイロードは$_POST スーパーグローバル。
以上がPHPでJSON POSTリクエストボディにアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。