我需要一些帮助来弄清楚为什么我不能将 $_POST['status'] 与 simplexml_load_string 一起使用。
我将一些数据发布到 php 页面,然后在 $_POST['status'] 中读取。然后需要将位于 $_POST['status'] 中的 xml 读入 php 的 simplexml_load_string,以便我可以将 xml 解析为一个对象。
如果我像这样对 simplexml_load_string() 进行硬编码:
$xml = simplexml_load_string('<?xml version="1.0"?>
<BackgroundReports userId="" password="" databaseset="">
<BackgroundReportPackage>
<ReferenceId>1|9</ReferenceId>
<OrderId>107284</OrderId>
<ScreeningStatus>
<OrderStatus flag="FALSE">x:partial</OrderStatus>
</ScreeningStatus>
<Screenings>
<Screening type="credit">
<ScreeningResults type="result" mediaType="html" resultType="report">
<InternetWebAddress><![CDATA[https://somewhere.com]]></InternetWebAddress>
</ScreeningResults>
</Screening>
</Screenings>
</BackgroundReportPackage>
</BackgroundReports>');
并用 var_dump($xml) 转储它的输出是:
XML
object(SimpleXMLElement)#3 (2) {
["@attributes"]=>
array(3) {
["userId"]=>
string(0) ""
["password"]=>
string(0) ""
["databaseset"]=>
string(0) ""
}
["BackgroundReportPackage"]=>
object(SimpleXMLElement)#4 (4) {
["ReferenceId"]=>
string(3) "1|9"
["OrderId"]=>
string(6) "107284"
["ScreeningStatus"]=>
object(SimpleXMLElement)#5 (1) {
["OrderStatus"]=>
string(9) "x:partial"
}
["Screenings"]=>
object(SimpleXMLElement)#6 (1) {
["Screening"]=>
object(SimpleXMLElement)#7 (2) {
["@attributes"]=>
array(1) {
["type"]=>
string(6) "credit"
}
["ScreeningResults"]=>
object(SimpleXMLElement)#8 (2) {
["@attributes"]=>
array(3) {
["type"]=>
string(6) "result"
["mediaType"]=>
string(4) "html"
["resultType"]=>
string(6) "report"
}
["InternetWebAddress"]=>
object(SimpleXMLElement)#9 (0) {
}
}
}
}
}
}
但是,如果我像这样使用 $_POST['status']$xml = simplexml_load_string($_POST['status']);
而不是硬编码,那么 simplexml_load_string 将不起作用。我知道 $_POST['status'] 具有所有相同的 xml...我将其转储出来,它与我将其硬编码为 simple_xml_string 的参数时完全相同。
当我尝试使用 $_POST['status'] 时,输出现在变成了这样:
XML
bool(false)
我需要弄清楚如何能够将其与 $_POST['status'] 一起使用,因为会员只会 POST 回我的 php 页面。