ホームページ php教程 PHP开发 PHPでPOSTデータを取得するいくつかの方法のまとめ

PHPでPOSTデータを取得するいくつかの方法のまとめ

Dec 23, 2016 pm 03:56 PM

1. PHP が POST データを取得するためのいくつかの方法

方法 1. 最も一般的な方法は次のとおりです: $_POST['fieldname'];

注: Content-Type: application/x-www-form- データのみurlencoded によって送信されました
説明: POST フォームからのデータです

方法 2, file_get_contents("php://input");

説明:
POST の元のデータを読み取ることができます。
$HTTP_RAW_POST_DATA と比較して、メモリへの負担が少なく、特別な php.ini 設定は必要ありません。
php://input は enctype="multipart/form-data" では使用できません。
説明:
Content-Type が指定されていない POST データの場合、file_get_contents("php://input"); を使用して元のデータを取得できます。
実際、このメソッドは、PHP を使用して任意の POST データを受信するために使用できます。 Content-Type に関係なく、バイナリ ファイル ストリームを含めることもできます。
したがって、方法 2 が最も安全な方法です

方法 3、$GLOBALS['HTTP_RAW_POST_DATA'];

注:
元の POST データを含む $HTTP_RAW_POST_DATA 変数を常に生成します。
この変数は、認識できない MIME タイプのデータが見つかった場合にのみ生成されます。
$HTTP_RAW_POST_DATA は、enctype="multipart/form-data" フォーム データには使用できません。
投稿されたデータが PHP によって認識されない場合は、$GLOBALS['HTTP_RAW_POST_DATA'] を使用して受信できます。
text/xml や
説明:
$GLOBALS['HTTP_RAW_POST_DATA'] は、POST からの元のデータを保存します。
$_POST または $_REQUEST は、PHP によってフォーマットされたデータを key=>value の形式で保存します。
ただし、POST データが $GLOBALS['HTTP_RAW_POST_DATA'] に保存されるかどうかは、centent-Type の設定によって異なります。つまり、データを POST するときは、Content-Type を明示的に指定する必要があります: application/x-www-form-urlencoded, POSTデータは $GLOBALS['HTTP_RAW_POST_DATA'] に保存されます

2. デモ

1. PHP はどのように POST から XML データを取得し、XML データを解析しますか

たとえば、WeChat エンタープライズ アカウントを開発する場合、次の方法を実行します。ユーザーの返信を処理する データはどうなるでしょうか?
ドキュメント: http://qydev.weixin.qq.com/wiki/index.php?title=%E6%8E%A5%E6%94%B6%E6%99%AE%E9%80%9A%E6% B6%88%E6%81%AF
まずドキュメントを確認すると、次のことがわかります: 開発モードを有効にした後、ユーザーがアプリケーションに応答すると、WeChat サーバーは検証済みのコールバック URL に XML データの文字列を POST します

次の URL を想定します。 http://www.xxx.com の場合
Http リクエスト メソッド: POST
http://www.xxx.com/?msg_signature=ASDFQWEXZCVAQFASDFASDFSS×tamp=13500001234&nonce=123412323

POST の XML コンテンツは次のとおりです:

<xml>
   <ToUserName><![CDATA[toUser]]></ToUserName>
   <FromUserName><![CDATA[fromUser]]></FromUserName> 
   <CreateTime>1348831860</CreateTime>
   <MsgType><![CDATA[text]]></MsgType>
   <Content><![CDATA[this is a test]]></Content>
   <MsgId>1234567890123456</MsgId>
   <AgentID>1</AgentID>
</xml>
ログイン後にコピー

それで、この内容を受け入れますか?
現時点で使用できる方法: 方法 2 (file_get_contents("php://input"))、方法 3 ($GLOBALS['HTTP_RAW_POST_DATA'])

方法 2 (file_get_contents("php://input") ) :

$input = file_get_contents("php://input"); //接收POST数据
$xml = simplexml_load_string($input); //提取POST数据为simplexml对象
var_dump($xml);
ログイン後にコピー

方法 3 ($GLOBALS['HTTP_RAW_POST_DATA'])

$input = $GLOBALS[&#39;HTTP_RAW_POST_DATA&#39;];
libxml_disable_entity_loader(true);
$xml = simplexml_load_string($input, &#39;SimpleXMLElement&#39;, LIBXML_NOCDATA);
var_dump($xml);
ログイン後にコピー


POST データを取得するためのその他の PHP メソッドについては、PHP 中国語 Web サイトの関連記事に注目してください。

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)