处理file_get_contents()的错误

时间:2014-07-03 03:05:15

标签: php simple-html-dom

我正在使用simplehtmldom解析器来解析网址内容。

它包含以下代码行:

$contents = file_get_contents($url, $use_include_path, $context, $offset);
当URL不存在时,

file_get_contents会返回警告。如何处理此类情况的所有可能错误,即404和所有其他可能的错误。

Warning: file_get_contents(http://www.something-not-valid-bla-bla-1234.com/): failed to open stream: php_network_getaddresses: getaddrinfo failed: Name or service not known in simple_html_dom.php on line 76

2 个答案:

答案 0 :(得分:3)

@放在file_get_contents前面,然后检查$contents === false;是否

$contents = @file_get_contents($url, $use_include_path, $context, $offset);
if ($contents === false) {
  //Something went wrong.
}

编辑:@可以防止错误被丢弃。

答案 1 :(得分:1)

我更喜欢这样做,(单一作业)

if( false === ( $contents = @file_get_contents($url, $use_include_path, $context, $offset))) {
  //Something went wrong.
}

还要注意严格的===相等运算符而不仅仅是==

@Update我同意Dagon关于cUrl,因为你正在访问内容-via-一个url,即使使用file_get_contents也可能无法正常工作,具体取决于你的php设置。进一步的信息我发现这个相关的问题,解释是相当长的tho,并需要在实现中进行一些更改。

Get content from a url using php