如何处理 PHP 中 file_get_contents() 函数的警告?

我写了一个像这样的PHP代码

$site="http://www.google.com";
$content = file_get_content($site);
echo $content;

但是当我从中删除“http://”时,我收到以下警告:$site

警告:file_get_contents(www.google.com) [function.file-get-content]:无法打开流:

我试过了,但它不起作用。trycatch


答案 1

第1步:检查返回码:if($content === FALSE) { // handle error here... }

步骤2:通过将错误控制运算符(即)放在调用file_get_contents()的前面来抑制警告:@$content = @file_get_contents($site);


答案 2

您还可以将错误处理程序设置为调用异常匿名函数,并对该异常使用 try/catch。

set_error_handler(
    function ($severity, $message, $file, $line) {
        throw new ErrorException($message, $severity, $severity, $file, $line);
    }
);

try {
    file_get_contents('www.google.com');
}
catch (Exception $e) {
    echo $e->getMessage();
}

restore_error_handler();

似乎有很多代码来捕获一个小错误,但是如果你在整个应用程序中使用异常,你只需要在顶部执行此操作一次(例如,在随附的配置文件中),它会将所有错误转换为异常。


推荐