はじめに: これは、POST JSON データを取得するための php の詳細ページです。POST JSON データを取得するための php、php、post、json php に関連する知識、スキル、経験、およびいくつかの php ソース コードを紹介します。
class='pingjiaF' Frameborder='0' src='http://biancheng.dnbcw.info/pingjia.php?id=359497'scroll='no'>ajax を介して php プログラムにデータを渡す場合、 $_POST を使用してデータをまったく取得できないことがわかりますが、print_r(file_get_contents("php://input")) を使用すると、実際には JSON データがポスト内に存在することがわかります。 json データを取得できます
それでは、php://input とは何ですか?
php://input の概要については、PHP 公式マニュアル文書に明確に説明されている段落があります。
php://input を使用すると、生の POST データを読み取ることができます。$HTTP_RAW_POST_DATA に代わるメモリ消費量が少なく、特別な php.ini ディレクティブは必要ありません。 enctype=”multipart / では php://input を使用できません。 form-data".
"翻訳すると次のようになります:
"php://input は未処理の POST データを読み取ることができます。 $HTTP_RAW_POST_DATA と比較して、メモリへの負担が少なく、特別な php.ini 設定は必要ありません。 php://input は enctype=multipart/form-data" には使用できません。
1. Content-Type 値が application/x-www-form-urlencoded の場合、php は http リクエストの対応するデータを埋めます。 body を配列 $_POST に挿入すると、$_POST 配列に入力されたデータは urldecode() 分析の結果になります (実際には、Content-Type に加えて、データがフォーム データであることを示す multipart/form-data もあります)。これについては後で紹介します)
2. php://input data、Content-Type が multipart/form-data でない限り (この条件は後で紹介します)、php: //入力データは一貫しています一貫したデータの長さは、Content-Length 3 で指定されます。Content-Type が application/x-www-form-urlencoded で、送信メソッドが POST メソッドの場合のみ、$_POST データが返されます。および php://input データは同じです (引用符付きで、形式と内容が一貫していることを示します)。 4. php://input は $ を読み取ることができません。 $_GET データは、http リクエストのボディ部分に記述されていないため、php://input についてはある程度理解できたと思います。 $http_raw_post_data とは何ですか? http_raw_post_data は、PHP に組み込まれているグローバル変数で、Content-Type が認識されない場合に POST データを変数 $http_raw_post_data に格納するために使用されます。 multipart/form. -data POST データ。PHP が変数 $http_raw_post_data に常に POST データを入力できるように、php.ini の always_populate_raw_post_data 値を設定する必要があります。
研究ノート 1、Coentent-Type は値のみを受け取ります。 application/x-www. -data-urlencoded と multipart/form-data の場合、PHP は http リクエスト パケット内の対応するデータをグローバル変数 $_POST に埋め込みます
2. Content-Type タイプがPHP によって認識されない場合は、http リクエスト パケット内の対応するデータが変数 $HTTP_RAW_POST_DATA に埋められます
3. Coentent-Type が multipart/form-data でない場合にのみ、PHP は http リクエスト パケット内の対応するデータを埋め込みませんそれ以外の場合は、パケットを php://input に送信します。 Coentent-Length で指定されるパディングの長さ。
4. Content-Type が application/x-www-data-urlencoded の場合のみ、php://input データは $_POST データと一致します。
5. php://input データは常に $HTTP_RAW_POST_DATA と同じですが、php://input は $HTTP_RAW_POST_DATA よりも効率的で、php.ini で特別な設定を必要としません
6. PHP は query_path 部分を変更しますPATH フィールドのグローバル変数 $_GET を入力します。通常、GET メソッドによって送信される http リクエストの本文は空です。
J2EE をフォロー Java Michael Jackson Video Station JSON オンライン ツール
http://biancheng.dnbcw.info/php/359497.html pageNo:1