2013-10-16 79 views
1

我有问题有以下:使用simplexml_load_file错误/警告处理不工作

$xml4 = simplexml_load_file($fulllink4, 'SimpleXMLElement', LIBXML_NOWARNING); 

$ fulllink4是动态生成的。有时就是在$ fulllink4产生的URL是错误的,我得到一个错误如下:

Warning: simplexml_load_file(http://xxxx.com): failed to open stream: HTTP request failed! HTTP/1.0 400 Bad Request in D:\xxxx.php on line 90 

我读过,通过添加“‘的SimpleXMLElement’,LIBXML_NOWARNING);”部分到它应该抑制任何错误的行,但它没有。

有谁知道我可以如何完全抑制该行产生的所有错误?

预先感谢您。

+0

它通常是一个坏主意,但你可以逃脱'@simplexml_load_file(...)在这种情况下丢失的' –

+0

XML文件本身。那么抑制这种警告有什么用呢? –

+0

其实我刚刚注意到我可以将@添加到simplexml_load_file中,但我仍然收到如下通知:注意:试图在D行上获取非对象的属性:\ xxxx.php 96行 我该如何摆脱通知还? – omega1

回答

1

试试这个:

$xml4 = simplexml_load_file($fulllink4, 'SimpleXMLElement', LIBXML_NOWARNING & LIBXML_NOERROR); 

它也可能是(可能)的错误/正在生成的警告你看到 没过多久,XML实际上解析(即,在获取阶段,其中大部分通过PHP的标准流包装,即file_get_contents()函数等)

你或许应该看看会发生很可能是:http://www.php.net/manual/en/simplexml.examples-errors.php

+0

谢谢,我补充说如下: $ xml4 = @simplexml_load_file($ fulllink4,'SimpleXMLElement',LIBXML_NOWARNING&LIBXML_NOERROR); 这似乎工作,但我现在得到这条线的通知错误: $ largeimg = $ xml4-> artist-> image [2]; 推测是因为simplexml_load_file失败... – omega1

+0

是的。这就说得通了。如果XML不能被加载,那么就没有什么可以解析的 – Cillier

1

它可以抑制使用错误10,但被高度认为是一个坏主意。

if($xml4 = @simplexml_load_file($fulllink4, 'SimpleXMLElement', LIBXML_NOWARNING)){ 
    // all other references to $xml4 
}