ホームページ  >  記事  >  バックエンド開発  >  PHP で POST データを取得する 3 つの方法

PHP で POST データを取得する 3 つの方法

WBOY
WBOYオリジナル
2016-07-23 08:54:55857ブラウズ
PHP、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リクエストヘッダー(header)のPATHフィールドにquery_pathとして記述されているためです。

方法 3、グローバル変数を使用する$GLOBALS[‘HTTP_RAW_POST_DATA’] $

GLOBALS[‘HTTP_RAW_POST_DATA’] に保存されるのは、POST からの元のデータです。 ただし、$
GLOBALS['HTTP_RAW_POST_DATA'] が POST データを保存するかどうかは、PHP が Content-Type を認識できない場合にのみ、変数 $ を入力します。 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。

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