使用php我想从多个网站加载XML文件,并希望在我的其中一个网站关闭时防止错误。我正在使用此代码访问该网址。
function get_xml($url){
$xmlDoc = new DOMDocument();
$xmlDoc->load($url); // This is the line causing errors
$channel=$xmlDoc->getElementsByTagName('channel')->item(0);
...
如果$ url中没有可用的xml Feed,我会收到很多错误消息,例如:
警告:DOMDocument :: load():公共标识符
后需要的空格警告:DOMDocument :: load():SystemLiteral“或'expected
警告:DOMDocument :: load():SYSTEM或PUBLIC,缺少URI
警告:DOMDocument :: load():打开和结束标记不匹配:链接第5行和头
如果Feed不可用,我该怎么做才能阻止$ url尝试加载? 我试过了:
if(file_exists($url)){
$xmlDoc->load('$url');
}
使用fopen和@load的东西,但我很可能错误地使用它们。
答案 0 :(得分:1)
理论上(如果我没记错的话),你应该能够捕捉到这些错误(所以你自己打电话处理它们,而不是让它们显示出来)使用 libxml 1 函数。
我特别想到libxml_use_internal_errors()
:
libxml_use_internal_errors()
允许您禁用标准libxml 错误并启用用户错误处理。
1。 libxml
是DOMDocument
内部使用的库 - SimpleXML
,btw
答案 1 :(得分:0)
尝试:
if (!@$xmlDoc->load($url)){
return FALSE;
}
如果方法get_xml
无法加载XML数据,您的函数FALSE
将立即返回load