ホームページ  >  記事  >  バックエンド開発  >  【PHP】JSON値の転送とPHPの受信のいくつかの状況

【PHP】JSON値の転送とPHPの受信のいくつかの状況

WBOY
WBOYオリジナル
2016-08-08 09:27:301082ブラウズ

Chrome のバックエンド ネットワークを使用して、JQuery の $.ajax() を通じて JSON データを PHP にポストするときのいくつかの状況を分析しました。

  • PHP の $_POST および $_REQUEST を介して json データを取得することはできません、つまり リーリー

注:

PHP は、デフォルトでは application/x-www.form-urlencoded の標準データ型のみを認識します。そのため、$ _POST 配列を使用する場合、text/xml、soap、application/octet-stream などのコンテンツは解析できません。受信できなくなります。

ケースA:

js には
追加された属性 contentType: "application/json; charset=utf-8",

はありません。 リーリー

$GLOBALS['HTTP_RAW_POST_DATA'] を使用した後、

データを取得できません、つまり
  • リーリー
file_get_contents("php://input") を使用すると、

データを取得できます

  • リーリー
  • 状況 B:

属性 contentType を js に追加します: "application/json; charset=utf-8",

リーリー リーリー

$GLOBALS['HTTP_RAW_POST_DATA'] を使用した後、

データを取得できます、つまり

    リーリー
  • file_get_contents("php://input") を使用すると、
  • データを取得できます

リーリー
  • 注: php://input を使用すると、POST の生データを読み取ることができます。 $HTTP_RAW_POST_DATA よりもメモリへの負担が少なく、特別な php.ini 設定は必要ありません。 php://input は enctype="multipart/form-data" では使用できません。
  • ケースC:

以下に参加しませんか リーリー

ケースAとケースBの結果には影響しません。

バージョン 5.2 以降、PHP は json_encode() 関数と json_decode() 関数をネイティブに提供し、前者はエンコードに使用され、後者はデコードに使用されます。以下のブログがとても詳しく書かれています、マーク!

PHP 言語での JSON の使用: http://www.ruanyifeng.com/blog/2011/01/json_in_php.html

上記では、[PHP] JSON 値の転送と PHP 受信のいくつかの状況を、関連する内容も含めて紹介しました。PHP チュートリアルに興味のある友人の参考になれば幸いです。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。