PHPでPOSTデータを取得するいくつかの方法のまとめ
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['HTTP_RAW_POST_DATA']; libxml_disable_entity_loader(true); $xml = simplexml_load_string($input, 'SimpleXMLElement', LIBXML_NOCDATA); var_dump($xml);
POST データを取得するためのその他の PHP メソッドについては、PHP 中国語 Web サイトの関連記事に注目してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









