アプリケーション/JSON コンテンツ タイプの JSON リクエストを処理する PHP
コンテンツ タイプを「application/json」に設定して AJAX リクエストを送信する場合、リクエストパラメータを受信する際の PHP のデフォルト動作は曖昧になります。この問題は、PHP では投稿パラメーターが URL エンコードされることを期待しているのに対し、JSON エンコードされたデータはそうでないことが原因で発生します。
このようなシナリオでは、コンテンツ タイプが「application/json」の場合、PHP の $ を介してパラメーターにアクセスすると、 _POST (URL エンコードされたデータに使用) は空の配列を返します。 PHP で JSON リクエストを適切に処理するには、別のアプローチが必要です。
解決策: file_get_contents() を使用して JSON データを取得します
$_POST に依存する代わりに、PHP file_get_contents() 関数は、PHP 入力ストリームなどのさまざまなソースから生データを読み取るために提供されます。この関数を json_decode() と組み合わせると、PHP スクリプトで JSON エンコードされたデータを解析して利用できるようになります。
次の例は、コンテンツ タイプが「application/json」の JSON リクエストを処理する方法を示しています。 PHP:
<code class="php"><?php $json_data = json_decode(file_get_contents('php://input')); var_dump($json_data); ?></code>
この例では、file_get_contents('php://input') がリクエストから生の JSON データを取得し、json_decode() がそれを配列またはオブジェクトに変換します。スクリプト内でアクセスされ、さらに処理されます。
以上がPHP で「application/JSON」コンテンツ タイプの JSON リクエストを処理する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。