PHP Curl 获取 HTTP 状态码并处理请求失败
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);
代码分析:
- 将
curl_exec($curl);修改为$result = curl_exec($curl);,以便获取请求执行结果。 - 添加
if ($result === false) { ... }代码块,用于判断请求是否失败。如果请求失败,则输出请求失败消息。 - 如果请求成功,则获取 HTTP 状态码并输出。
总结:
通过添加错误处理代码,我们可以有效地处理请求失败的情况,避免出现 500 错误,提高代码的稳定性和可维护性。
原文地址: https://www.cveoy.top/t/topic/bkGl 著作权归作者所有。请勿转载和采集!