- 締切済み
PHPでのRAWデータの受け取り方
こんにちわ。 PHPについて質問させて下さい。 PEARのHTTP_RequestのaddRawPostData()でXML文書をmessage bodyに突っ込んで POSTメソッドで投げて、受ける側ではPOSTで取得しているのですが、 $_POSTでmessage bodyを受け取った場合、 var_dump($_POST); 出力: array(1) { ["<entry_xmlns=\"ttp://purl_org/atom/ns#\">postのテスト</entry>"]=> string(0) "" } などとなり、 message bodyの内容が無条件に$_POSTのキーになり、 「空白」であるところが「_(アンダーバー)」に変換されてしまいます。 APIを通常のPOSTやGETデータでつついてレスポンスのXMLを受け取ってパース・・・というのはよくやっているのですが、 XMLで受け取るAPIをPHPで作った事が無かったのでどうにも知識不足です。 そもそもこのやり方でいいんだろうか。 どなたかご教授ください。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- Bonjin
- ベストアンサー率43% (418/971)
>ちなみにですがレスポンスのステータスコードを操作もしたいのですが >なにかいい方法はないでしょうか。 header関数で指定すればOKです。 > header("HTTP/1.1 201 Created"); 詳しくは参考URL(っていうかマニュアルですが)を見てください。
- Bonjin
- ベストアンサー率43% (418/971)
php://inputから生のPOSTデータが取得出来ます。 file_get_contentsやfopenなどを使って生データを読み込んだら、後はDOM関係のクラスやAPIを使用してDOMに落としてあげると良いと思います。
お礼
おっしゃるとおりで・・・ カンタンにできました。 orz peclまで入れてみた自分のアホさ加減にびっくりです。 ちなみにですがレスポンスのステータスコードを操作もしたいのですが なにかいい方法はないでしょうか。 201 created として返したかったりするのですが・・・ よろしくお願いします。
お礼
ありがとうございました! phpのマニュアル読んでたら普通に書いてありました。 というか、とくに何も考えず質問してしまってすいませんでしたm(_ _)m 逆に丁寧に答えて頂いてどうもです!