この記事では、php が POST データを取得する 3 つの方法を紹介します。1 つ目は $_POST を使用する方法、2 つ目は file_get_contents を使用する方法、3 つ目はグローバル変数 $GLOBALS を使用する方法です。詳細については、以下の手順を参照してください。
POSTデータを取得する3つのメソッド
メソッド1、$_POST
$_POSTまたは$_REQUESTは、PHPでフォーマットされたデータをkey=>valueの形式で保存します。
方法 2、file_get_contents("php://input") を使用します
Content-Type が指定されていない POST データの場合は、file_get_contents("php://input") を使用して元のデータを取得できます。 。 実際、PHP を使用して POST で受信したデータはすべてこのメソッドを使用します。 Content-Type に関係なく、バイナリ ファイル ストリームを含めることも可能です。
$HTTP_RAW_POST_DATA と比較して、メモリへの負担が少なく、特別な php.ini 設定は必要ありません。
php://input は、Content-Type が multipart/form-data である POST データを読み取ることができません。php.ini の always_populate_raw_post_data 値を On に設定する必要があります。
php://input は $_GET データを読み取れません。これは、$_GET データが http リクエストの本文部分ではなく、http リクエスト ヘッダーの PATH フィールドに query_path として書き込まれているためです。
方法 3、グローバル変数 $GLOBALS['HTTP_RAW_POST_DATA'] を使用します
POST からの元のデータは $GLOBALS['HTTP_RAW_POST_DATA'] に保存されます。
ただし、POSTデータが$GLOBALS['HTTP_RAW_POST_DATA']に保存されるかどうかは、centent-Typeの設定に依存し、PHPがContent-Typeを認識できない場合のみ、POSTデータがそのまま変数として入力されます。 $GLOBALS['HTTP_RAW_POST_DATA']。Content-Type=application/x-www-form-urlencoded の場合、変数は空です。
さらに、Content-Type が multipart/form-data である POST データを読み取ることもできません。PHP が常に POST データを入力できるように、php.ini の always_populate_raw_post_data 値を On に設定する必要もあります。変数 $http_raw_post_data に代入します。
以上がこの記事の全内容です、皆様の学習のお役に立てれば幸いです。
関連する推奨事項:
PHP で WeChat 現金封筒関数を実装する方法
PHP は、このループの残りのコードをスキップする際の注意点を引き続き実現します
PHP WeChat はログインとユーザーにメッセージを送信する方法をシミュレートします
以上がPHPでPOSTデータを取得する3つの方法を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。