0

php:// inputからデータをプルして、生データをXMLElementに保存し、それを並べ替えて、データベースの1つにあるテーブルと比較できるようにしようとしています。$ _POSTを使用してそれを保存しようとしましたが、$ _ POSTを使用して遭遇した問題は、フィールドヘッダーを取得できなかったため、データを保存できなかったことです。

現在、このコードを使用してhttpPOSTから生データを取得しています。

$PostContents = file_get_contents(php://input);
echo $PostContents;

これは、そのコードから返されるデータです。

xml=%3COPS%3E+%0D%0A%3CAuthentication%3E%3CSecretKey%3Ex44%3C%2FSecretKey%3E+%0D%0A%3C%2FAuthentication%3E+%0D%0A%3CAction%3EUpdate+Person+Status%3C%2FAction%3E+%0D%0A%3CUpdatePersonStatus%3E+%0D%0A%3CPerson%3E+%0D%0A%3CName%3EDavid%3C%2FOrderNumber%3E+%0D%0A%3CAge%3EShipped%3C%2FOrderStatus%3E+%0D%0A%3CAddress%3EThird+Party%3C%2FAddress%3E+%0D%0A%3CPhone%3EUPS+Grd%3C%2FPhone%3E+%0D%0A%3C%2FPerson%3E%0D%0A%3C%2FUpdatePersonStatus%3E+%0D%0A%3C%2FOPS%3E+%0D%0A

これがその出力を生成しているものです。

<html> 
<body> 
<form action="http://172.16.100.116/php.php" method="post"> 
<textarea name="xml" rows="20" cols="40"><OPS> 
<Authentication><SecretKey>x44</SecretKey> </Authentication> 
<OPS> 
<Authentication><SecretKey>x44</SecretKey> 
</Authentication> 
<Action>Update Person Status</Action> 
<UpdatePersonStatus> 
<Person> 
<Name>David</Name> 
<Age>21</Age> 
<Address>123EasyStreet</Address> 
<Phone>6666666666</Phone> 
</Person>
</UpdatePersonStatus> 
</OPS> 
</textarea> 
<input type=submit> 
</form> 
</body> 
</html>

(ここで使用されているhtmlファイルは、厳密にテスト目的で使用されており、通過するデータはプラスヘッダーxml情報内にあります。)

だから私の質問は、データを('php:// input')からXMLに取得して、その情報を並べ替えることができるようにするために何をする必要があるかということです。

4

1 に答える 1

0

urldecodeを使用して、xml=

urldecode($PostContents);

これが結果になります

<OPS> 
<Authentication><SecretKey>x44</SecretKey> 
</Authentication> 
<Action>Update Person Status</Action> 
<UpdatePersonStatus> 
<Person> 
<Name>David</OrderNumber> 
<Age>Shipped</OrderStatus> 
<Address>Third Party</Address> 
<Phone>UPS Grd</Phone> 
</Person>
</UpdatePersonStatus> 
</OPS>
于 2013-02-12T18:12:00.247 に答える