php file_get_content 怎么获取错误信息?
黄舟
黄舟 2017-04-10 16:37:48
[PHP讨论组]

使用php做跨域代理,使用file_get_content函数发出get请求的时候,对方服务器设置的是,如果验证错误,则会引发http 422,然后还会返回一个json值。

请问,怎么获取这个json值,因为该函数直接返回建立链接失败,没有任何值。

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回复(5)
阿神

参考 (可能需要搭梯子)

set_error_handler(
    create_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();

另外建议使用curl.

PHPz

返回 false ? 试下访问百度啥的能不能访问的通

PHPz

这应用场景好像还没有碰到过,为嘛要返回422呢,有返回值就应该是200,然后对json判断,试试curl

怪我咯

这个函数不行吧,你用curl系列函数试试

PHP中文网
function get_contents()
{
    $content = @file_get_contents("http://segmentfault.com/q/101000000427840111");
    var_dump($http_response_header);
    var_dump($content);
}
get_contents();

返回的http 状态码可以这么获取
但是如果返回 非 200的话,file_get_contents 会返回 false
可以判断不同的 http status code ,进行不同的逻辑处理

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号