我正在使用Zend_Feed_Atom
从网站获取提要,但收到此错误:
消息:
DOMDocument无法解析 XML: DOMDocument::loadXML() [domdocument.loadxml]: xmlParseEntityRef: 在 Entity 中没有名称,行: 827
我尝试使用另一个网站,但没有错误。我想知道为什么该特定页面会出现错误以及此错误是什么意思。我在网上看过,它说这是编码的问题(我真的不明白)。
我的代码很简单,它只是
if($type_feed == "atom"){
$nfeed = new Zend_Feed_Atom($address);
}elseif($type_feed == "rss"){
$nfeed= new Zend_Feed_RSS($address);
}
任何帮助都会很棒! 谢谢!
看看这里: http://www.php.net/manual/en/class.domdocument.php#domdocument.props.recover
专有。启用恢复模式,即尝试解析格式不正确的文档。此属性不是 DOM 规范的一部分,特定于 libxml。
您可以尝试:
$dom = new DOMDocument();
$dom->recover = true;
另外,看看我的实现:https://gitlab.com/DeepRSS/Reader/blob/a2723735ff3e3cdd7d85649c92d0115211ea9a0d/src/Core/Service/ZendReader/FeedParser.php#L99
如果饲料被破坏,那么它就会被破坏,我们对此无能为力。
解决此问题的一种方法是使用@
来抑制错误。
if($type_feed == "atom"){
$nfeed = @new Zend_Feed_Atom($address);
}elseif($type_feed == "rss"){
$nfeed= @new Zend_Feed_RSS($address);
}
请注意,这并不理想,因为它会在调用new
时抑制所有内容。