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”
知道我做错了什么吗? 我必须添加一些文本,因为它显然是代码而且不可理解。现在?现在?现在?现在?
答案 0 :(得分:2)
print_r()
(默认情况下)不会返回输出,而是打印输出 - 因此您无法在字符串上下文中使用它。如果你想这样做,你可以传递一个truthy值作为第二个参数,让它返回输出而不是打印它:
$this->_logCall(self::LOG_DIMOCO, 'loaded simpleXML '.print_r($xml, true), ' --');