ホームページ  >  記事  >  バックエンド開発  >  PHPでポストパラメータを取得する方法はありますか?

PHPでポストパラメータを取得する方法はありますか?

L
Lオリジナル
2020-06-01 16:52:113268ブラウズ

PHPでポストパラメータを取得する方法はありますか?

PHP がポストパラメータを取得するためのいくつかの方法

PHP がデフォルトで認識するデータ型は application/x です-www .form-urlencoded の標準データ型。

1. $_POST['paramName'] Content-Type が application/x-www-form-urlencoded または multipart/form-data の場合にのみ、PHP は HTTP リクエスト パケットを変更します。本体データは $_POST グローバル変数に入力され、PHP は他の状況を無視します。 $_POST 配列に入力されたデータは、urldecode() 解析の結果です。

2. file_get_contents("php://input") は、ほとんどの種類の Content-type に適しています。

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

3. $GLOBALS['HTTP_RAW_POST_DATA']; は、常に元の POST データを含む $HTTP_RAW_POST_DATA 変数を生成します。この変数は、認識できない MIME タイプのデータが検出された場合にのみ生成されます。 $HTTP_RAW_POST_DATA は、enctype="multipart/form-data" フォーム データでは使用できません。

投稿されたデータが PHP で認識されない場合は、$GLOBALS['HTTP_RAW_POST_DATA'] を使用して、text/xml や SOAP などのデータを受け取ることができます。 PHP が常に POST データを変数 $http_raw_post_data に入力できるように、php.ini の always_populate_raw_post_data 値を On に設定する必要があります。

公式ドキュメントを参照してください。上位バージョンでは、この変数 $HTTP_RAW_POST_DATA は非推奨です。
この機能は PHP 5.6.0 では廃止され、PHP 7.0.0 では削除されました。一般に、php://input should

概要:

1、Coentent-Type は、値が application/x-www-data-urlencoded および multipart/form-data の場合にのみ使用されます。PHP http リクエスト パケットの対応するデータをグローバル変数 $_POST

2 に書き込みます。PHP が Content-Type タイプを認識しない場合、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 と同じです。Content-Type が multipart/form-data ではないデータのみを読み取りますが、php://input は $HTTP_RAW_POST_DATA よりも効率的です. 、php.ini

6 には特別な設定は必要ありません。PHP は、PATH フィールドの query_path 部分をグローバル変数 $_GET に書き込みます。通常、GET メソッドによって送信される http リクエストの本文は空です。

7、php://input は $_GET データを読み取ることができません。これは、$_GET データが http リクエストの本文部分ではなく、http リクエスト ヘッダーの PATH フィールドに query_path として書き込まれているためです。

8. application/x-www-form-urlencoded かつ multipart/form-data 形式の場合は $_POST;

9. text/ など取得できない場合xml、アプリケーション /json、soap、file_get_contents('php://input') を使用します;

推奨チュートリアル: "PHP チュートリアル "

以上がPHPでポストパラメータを取得する方法はありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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