我正在尝试从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,以便我可以对它的信息进行排序?
答案 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>