$_POST: HTTP POST メソッドを通じて渡される変数の配列。は自動グローバル変数です。
$GLOBALS['HTTP_RAW_POST_DATA']: 生の POST データを含む変数を常に生成します。この変数は、認識できない MIME タイプのデータが検出された場合にのみ生成されます。 $HTTP_RAW_POST_DATA は、enctype="multipart/form-data" フォーム データには使用できません。
つまり、基本的に $GLOBALS['HTTP_RAW_POST_DATA'] と $_POST は同じです。
ただし、投稿されたデータが PHP で認識されない場合は、$GLOBALS['HTTP_RAW_POST_DATA'] を使用して、text/xml や SOAP などのデータを受け取ることができます。
追加説明: PHP がデフォルトで認識するデータ型は、application/x-www.form-urlencoded の標準データ型です。
マニュアルにはこう書いてあります
常に元のPOSTを含む変数を生成してください
データ。それ以外の場合、この変数は、認識できない MIME タイプのデータが検出された場合にのみ生成されます。ただし、生の POST データにアクセスするより良い方法は、
php://入力。 enctype="multipart/form-data" の $HTTP_RAW_POST_DATA
フォームデータは利用できません。
質問: $HTTP_RAW_POST_DATA == $_POST
?
マニュアルによれば、答えは「いいえ」であるはずです。
違うとしたら、何が違いますか?
私は次のように答えを知っています:
RAW / 未解釈の HTTP POst
情報には、
$GLOBALS['HTTP_RAW_POST_DATA']
を使用してアクセスできます。これは、
post Content-Type は PHP が理解できるものではありません (例:
text/xml).
つまり、基本的に $GLOBALS['HTTP_RAW_POST_DATA'] と
$_POSTも同様です。ただし、投稿されたデータが PHP で認識できない場合は、次を使用できます。
受信する $GLOBALS['HTTP_RAW_POST_DATA'] (text/xml や SOAP など)
等
デフォルトでPHPによって認識されるデータ型は、application/x-www.form-urlencoded標準データ型です
Content-Type=text/xmlを使用してください
XML ドキュメントの内容を PHP サーバーに送信し、この POST データを取得する方法を入力します。
RAW / 未解釈の HTTP POST
情報には $GLOBALS['HTTP_RAW_POST_DATA'] を使用してアクセスできます。
これは、投稿の Content-Type が異なる場合に便利です。
PHP が理解できるもの (text/xml など)。
PHP はデフォルトで application/x-www.form-urlencoded 標準データ型のみを認識するため、text/xml などのコンテンツを $_POST 配列に解析することはできません。したがって、プロトタイプを保持して $GLOBALS['HTTP_RAW_POST_DATA'] に渡します。
受け取ること。
別の項目があります php://input
この関数は実装することもできます
php://input を使用すると、POST の生データを読み取ることができます。そして
$HTTP_RAW_POST_DATA よりもメモリへの負担が少なく、特別な php.ini は必要ありません。
設定。 php://input は enctype="multipart/form-data" では使用できません。
アプリ
以上がphpの$_POSTの説明例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。