【发布时间】:2016-11-01 17:39:27
【问题描述】:
在下面的代码中,应该执行 die() 函数,因为我传递给 simplexml_load_file() 的 URL 是错误的。 simplexml_load_file() 返回 FALSE,应该会触发 die():
$url = 'http://www.badurl.com';
$xml = simplexml_load_file($url) or die('Error: Can\'t create the object.');
我为什么会收到以下错误消息?
Warning: simplexml_load_file(http://www.badurl.com): failed to open stream: HTTP request failed! HTTP/1.0 404 Not Found in /var/www/badurl.com on line 16
Warning: simplexml_load_file(): I/O warning : failed to load external entity "http://www.badurl.com" in /var/www/badurl.com on line 16
Error: Can't create the object.
【问题讨论】:
-
您可以使用
@使警告静音。或者更好的是,您可以简单地将display_errors设置为off。die被正确触发。 -
你能定义“坏”吗?仅仅因为它可能无法加载(如果您使用的是实际域),并不意味着它是“坏的”。 Whois 结果:"*badurl.com 已注册*"。我没有加载,或者由于某些未知原因需要很长时间才能加载。
-
但它确实被触发了,不是吗?我在你的输出中看到了
Error: Can't create the object.。 -
在这种情况下,bad as in it 不存在。
-
费德昆,你有答案。我只需要抑制错误。如果您想将其发布为答案,我会接受。