ホームページ >バックエンド開発 >PHPチュートリアル >$POST、$HTTP_RAW_POST_DATA、php://input の違いについて話しましょう。
$_POST は、POST データを取得するために最も一般的に使用される方法で、送信されたデータを連想配列に編成し、urldecode などのエンコード処理、さらにはエンコードの変換と識別を実行します。データ型は、デフォルトで PHP によって認識されるデータ型です。 application/x-www.form-urlencoded
は、text/xml、application/json などは解析できません。 other non-application/x- www.form-urlencoded データ型の内容
前述したように、デフォルトで PHP によって認識されるデータ型は application/x-www.form-urlencoded で、Content-Type=application/json タイプを使用すると、送信された POST データは現時点では $_POST では取得できませんが、$GLOBALS['HTTP_RAW_POST_DATA'] を使用すると取得できます。 PHP が Content-Type を認識できない場合、POST データを $HTTP_RAW_POST_DATA に埋め込むためです。
有効にするには、php.ini の always_populate_raw_post_data 値を On に設定する必要があります
$_POST と php ://input $HTTP_RAW_POST_DATA は、値が取得できる場合は空です
enctype="multipart/form-data" には使用できません
PHP7 では削除されました このグローバル変数には、
php://input の代わりに php://input を使用してください入力ストリームを通じてファイルとして読み取ることができます。このメソッドは、未処理の POST 生データを取得し、POST 生データを読み取ることができます。 $HTTP_RAW_POST_DATA よりもメモリへの負担が少なくなります。
概要
特別な php.ini 設定は必要ありません
は enctype="multipart/form-data"