PHP使用fopen的时候能否捕获HTTP流错误

当我打开一个不存在的页面的时候,比如

fopen('http://bucunzai.com/none.html', 'r');

会报错,提示:

failed to open stream: HTTP request failed

请问能否捕获这个信息而不是报错呢?

阅读 5.5k
3 个回答

试过哦,可以获得错误信息,但是不可以阻止报错,另外我也知道可以用CURL以及@避免,不过我现在需要用到fopen,也希望尽量不使用"@",不知道有没有好的办法

系统函数(fopen)本身设定为报出错误信息,无法更改现实。除非你重新编译php源码。 或者你就老老实实用curl

新手上路,请多包涵
    //定义错误等级
    error_reporting(E_ERROR);
    $fp = fopen($url, "r");
    //如果没有文件,则提示,有则直接下载
    if (empty($fp)) {
        //错误处理
    }
    .......
新手上路,请多包涵
try {
fopen('http://bucunzai.com/none.html', 'r');
}
catch (Exception $e) {   
print $e->getMessage(); 
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题