$_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)
アフィリエイトは私のphpページにのみPOSTするため、 $_POST['status'] でこれを使用できるようにする方法を理解する必要があります。