0

我正在尝试从 php://input 中提取数据,以便可以将原始数据存储到 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 中,以便我可以对它的信息进行排序?

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 回答