15

重複の可能性:
PHP での POST と生の POST の違いは何ですか?

理解を深めるために、$_POST$HTTP_RAW_POST_DATA、およびfile_get_contents(php://input)の基本的な違いを説明していただければ幸いです。

どちらをいつ、なぜ使用するのですか?

4

1 に答える 1

27
  1. $_POSTには、スクリプトにポストされる URL エンコード(application/www-url-encoded)変数が含まれており、PHP がそれらをデコードします。HTML FORMデータを扱う場合は、これを使用します。
  2. file_get_contents("php://input") - 生の POST データを取得します。これは、API を記述し、PHP で $_POST にデコードできないXML/JSON/... 入力が必要な場合に使用する必要があります。
  3. $HTTP_RAW_POST_DATA - 理論的には上記と同じですが、php.iniに依存します。

アプリケーション/www-url でエンコードされていない入力が必要な場合は、常に #3 の代わりに方法 #2 を使用します。

于 2012-10-21T11:40:15.817 に答える