PHP Curl 获取 HTTP 状态码并处理请求失败

在使用 PHP Curl 获取远程资源时,可能会遇到请求失败的情况,导致服务器返回 500 代码。为了避免这种情况,我们可以添加错误处理代码,以更有效地处理请求失败的状况。

代码示例:

function GetHttpStatusCode($url) {
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url); // 获取内容 url
    curl_setopt($curl, CURLOPT_HEADER, 1); // 获取 http 头信息
    curl_setopt($curl, CURLOPT_NOBODY, 1); // 不返回 html 的 body 信息
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 返回数据流,不直接输出
    curl_setopt($curl, CURLOPT_TIMEOUT, 10); // 超时时长,单位秒
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 自动跟踪重定向
    $result = curl_exec($curl);

    if ($result === false) {
        echo '请求失败';
    } else {
        $httpCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
        echo 'HTTP 状态码: ' . $httpCode;
    }

    curl_close($curl);
}

// 测试代码
$url = $_GET['url']; // 获取 url 参数
GetHttpStatusCode($url);

代码分析:

  1. curl_exec($curl); 修改为 $result = curl_exec($curl);,以便获取请求执行结果。
  2. 添加 if ($result === false) { ... } 代码块,用于判断请求是否失败。如果请求失败,则输出 请求失败 消息。
  3. 如果请求成功,则获取 HTTP 状态码并输出。

总结:

通过添加错误处理代码,我们可以有效地处理请求失败的情况,避免出现 500 错误,提高代码的稳定性和可维护性。

PHP Curl 获取 HTTP 状态码并处理请求失败

原文地址: https://www.cveoy.top/t/topic/bkGl 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录