【PHP】$_POST、$HTTP_RAW_POST_DATA、php://input、httprawpostdata 1. HTML application/x-www-form-urlencodedすべての文字は送信前にエンコードされます (スペースは + に変換され、特殊文字は ASCII HEX に変換されます) multipart/form-data 文字はエンコードされていません。通常はアップロードを使用します text/plain スペースは + に変換されますが、特殊文字はエンコードされません たとえば、キーと値のペア リーリー は次の生データとしてエンコードされます: リーリー $_POST リーリー $HTTP_RAW_POST_DATA リーリー php://input リーリー 2、$_POST $_POST は、フォームを取得するために最も一般的に使用される方法です。送信されたデータを連想配列に編成し、urldecode などのエンコード処理、さらにはエンコード変換を実行します。認識されるデータ型は、デフォルトで PHP によって認識されるデータ型です。 application/x-www.form-urlencoded text/xml、application/json、その他の非 application/x-www.form-urlencoded データ型などのコンテンツを解析できません 3. $HTTP_RAW_POST_DATA デフォルトで 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 の 値を On に設定しますalways_populate_raw_post_data $_POSTとphp://inputが値を取得できる場合、$HTTP_RAW_POST_DATAは空です enctype="multipart/form-data" では使用できません このグローバル変数は PHP7 で削除され、php://input に置き換えられました。always_populate_raw_post_data を使用すると、$HTTP_RAW_POST_DATA を入力するときに E_DEPRECATED エラーが発生します。 今後の PHP バージョンでは削除される可能性があるため、E_DEPRECATED 错误。 请使用php://input 替代 $HTTP_RAW_POST_DATA, 因为它可能在后续的 PHP 版本中被移除。 设置always_populate_raw_post_data 为 -1 (这样会强制 $HTTP_RAW_POST_DATA 未定义,所以也不回导致 E_DEPRECATED$HTTP_RAW_POST_DATA の代わりに php://input を使用してください。 新しい動作を体験するには、always_populate_raw_post_data を -1 に設定します (これにより、強制的に $HTTP_RAW_POST_DATA が未定義になるため、E_DEPRECATED エラーは発生しません)。 4.php://input php://input は、入力ストリームを介したファイル読み取りを通じて未処理の POST 生データを取得でき、POST 生データの読み取りを許可します。 $HTTP_RAW_POST_DATA よりもメモリへの負担が少なくなります。 特別なphp.ini設定は必要ありません enctype="multipart/form-data" では使用できません http://www.bkjia.com/PHPjc/1073810.htmlwww.bkjia.comtrue http://www.bkjia.com/PHPjc/1073810.html技術記事 【PHP】$_POST、$HTTP_RAW_POST_DATA、php://input、httprawpostdata 1. HTMLフォーム enctype 属性 application/x-www-form-urlencoded すべての文字は送信前にエンコードされます...🎜🎜🎜🎜 🎜🎜