web-dev-qa-db-ja.com

PHPでPOSTデータにアクセスする方法は?

PHPリクエストで送信されたXMLドキュメントを受け入れるPOSTページを作成する必要があります:

POST /mypage.php HTTP/1.1
Host: myhost.com
Content-Type: application/xml
Content-Length: ...

<?xml version="1.0" encoding="utf-8"?>
<data>
 ...
</data>

これは、一部のHTMLフォームのデータではなく、単なるXMLドキュメントです。

PHPコードでこのXMLにアクセスするにはどうすればよいですか?

26
peter

から読む php://input 。たとえば、次を使用できます。

$rawdata = file_get_contents('php://input');

または

$rootNode = simplexml_load_file('php://input');

別の方法として、 $HTTP_RAW_POST_DATA も機能しますが、速度が遅く、PHP構成 always_populate_raw_post_data

38
phihag
5
Gumbo

http://us.php.net/manual/en/reserved.variables.httprawpostdata.php

$ HTTP_RAW_POST_DATAは、リクエストのコンテンツタイプがmultipart/form-dataではないと想定して利用可能である必要があります

2
Bob Gettys
2
Ionuț G. Stan

PHP入力 を使用することをお勧めします。何かのようなもの

$postText = trim(file_get_contents('php://input'));
1
Rob Di Marco

これらのいずれかが機能します:

$HTTP_RAW_POST_DATA variable or the php://input stream.

ただし、

$HTTP_RAW_POST_DATA variable

動作させるには、構成ファイルの.ini設定を変更する必要がある場合があります

0
fidazik