我最近更新我的PHP從5.3到5.5,並得到了這個錯誤。PHP 5.5打破empty()SimpleXMLElement
我的XML是:
<search-response>
...
...
<results-count>12345</results-count>
</search-response>
如果我檢查,如果$值是空的,它始終是。雖然這在PHP 5.3中工作。他們是否改變了empty()
方法中的某些內容?
$contents = file_get_contents(dirname(__FILE__). '/dummy.xml');
$xml = new SimpleXMLElement($contents);
function xpath_val($source_xml, $argument_array) {
$result = array();
foreach($argument_array as $k => $v){
$node = $source_xml->xpath($v[0]);
if (empty($node)) {
$value = $node;
} else {
$value = $node[0];
}
if (empty($value)) {
$nodeval = '';
} else {
$nodeval = strval($value);
}
echo $nodeval;
}
}
$arr = array();
$arr['info'] = xpath_val($xml,array(
'count' => array('/search-response/results-count','integer')
));
var_dump($arr);
編輯 回報$ nodeval;而不是echo $ nodeval;得出:
array(1) {
["info"]=>
string(0) ""
}
請向我們展示您的**全**和**真**代碼!如何在變量中獲取xml等等 – Rizier123 2015-03-19 10:26:18
錯誤日誌可能會有所幫助,您可以發佈它嗎? – henrik 2015-03-19 10:28:16
我發佈了整個代碼 – user1213904 2015-03-19 10:41:08