0
XML:simplexml_load_string無法加載XML /無錯誤/結果不===虛假
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<result sync="false" version="2">
<action>start-subscription</action>
<action_result>
<code>103</code>
<detail>1 missing parameter</detail>
<missing_parameters>
<missing_parameter>
<key>operator</key>
</missing_parameter>
</missing_parameters>
<status>1</status>
</action_result>
<custom_parameters>
<custom_parameter>
<key>cp_REF</key>
<value>simpleLPADULTCHSMSV2___WoopGang------___Adjomo___external___paid___android___CH___WIFI___locale=fr_FR</value>
</custom_parameter>
</custom_parameters>
<customer>
<country>CH</country>
<language>en</language>
</customer>
<payment_parameters>
<channel>web</channel>
<method>OPERATOR</method>
<order>90330</order>
</payment_parameters>
<transactions>
<transaction>
<id>1308636894</id>
<status>-1</status>
</transaction>
</transactions>
<request_id>1591621_t593818e0f3913</request_id>
<reference>09045c8e-9ec1-4306-8699-5ac5306983b2</reference>
</result>
PHP:
$xml = file_get_contents("php://input");
$datas = array();
parse_str($xml, $datas);
$data = $datas['data'];
libxml_use_internal_errors(true);
$xml = simplexml_load_string($data);
if($xml === false){
foreach(libxml_get_errors() as $error) {
$this->_logCall(self::LOG_DIMOCO, $error->message,"--");
}
}else{
$this->_logCall(self::LOG_DIMOCO, 'loaded simpleXML '.print_r($xml), ' --');
}
運行,在過去的ELSE結束,結果是 「1」
任何想法我做錯了什麼? 我不得不添加一些文字,因爲顯然它的主要代碼是不可理解的。現在呢?現在呢?現在呢?現在呢?
我明白了,那看起來合法!現在嘗試並驗證您的答案 –
完美的工作謝謝你。 所以關於文檔(http://php.net/manual/fr/function.simplexml-load-string.php) 我認爲他們犯了一個錯誤,因爲他們使用print_r($ xml); –
不 - 文檔看起來不錯。他們將輸出打印到STDOUT。您正試圖捕獲它並將其發送到日誌。 –