来自php:// input的无格式文本

时间:2013-02-12 18:09:58

标签: php xml post

我正在尝试从php://输入数据,以便我可以将原始数据存储到XMLElement中,以便我可以对其进行排序,并将数据与我的一个数据库中的表进行比较。我也尝试使用$ _POST并存储,但我遇到的问题是使用$ _POST,我没有得到字段标题,所以我无法存储数据。

我目前正在使用此代码从http POST中检索原始数据。

$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,以便我可以对它的信息进行排序?

1 个答案:

答案 0 :(得分: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>