下面的代码不能在一台服务器上运行,但在其他服务器上运行正常。我收到了这个错误:
Warning: simplexml_load_string(): Entity: line 1: parser error : Opening and ending tag mismatch: HR line 1 and body in testchecker.php on line 11
Warning: simplexml_load_string(): dden.</u></p><HR size="1" noshade="noshade"><h3>Apache Tomcat/5.5.20</h3></body> in testchecker.php on line 11
Warning: simplexml_load_string(): ^ in testchecker.php on line 11
Warning: simplexml_load_string(): Entity: line 1: parser error : Opening and ending tag mismatch: HR line 1 and html in testchecker.php on line 11
Warning: simplexml_load_string(): Entity: line 1: parser error : Premature end of data in tag body line 1 in testchecker.php on line 11
Warning: simplexml_load_string(): Entity: line 1: parser error : Premature end of data in tag html line 1 in testchecker.php on line 11
Warning: Invalid argument supplied for foreach() in testchecker.php on line 12
<?php
set_time_limit(0);
$url="http://test";
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
$data = curl_exec($ch);
curl_close($ch);
$xml = simplexml_load_string($data);
foreach($xml->User as $child){
echo $child->Id."<br/>";
}
?>
我不明白为什么会出现这个错误,因为在本地和其他服务器上它的工作正常。在dreamhost上,它不是。任何人都可以帮助我。
答案 0 :(得分:1)
错误消息已告诉您,出了什么问题
Warning: simplexml_load_string(): Entity: line 1: parser error : Opening and ending tag mismatch: HR line 1 and body in testchecker.php on line 11 Warning: simplexml_load_string(): dden.</u></p><HR size="1" noshade="noshade"><h3>Apache Tomcat/5.5.20</h3></body> in testchecker.php on line 11
XML要求关闭所有标记,而使用HTML,您可以偶尔省略结束标记。
在这种情况下,您的<hr>
标记没有相应的结束标记。这在HTML中完全有效。但是,它不是格式良好的XML,simplexml_load_string
<强>描述强>
获取格式良好的XML字符串并将其作为对象返回。
答案 1 :(得分:0)
我已经解决了这个问题。 ip被阻止,因此禁止消息,而不是xml。 解锁ip解决了所有问题。