在PHP中,处理HTTP状态码的方法是检查curl_exec()
函数返回的状态码。你可以使用curl_getinfo()
函数来获取HTTP状态码。以下是一个简单的示例,展示了如何在PHP网页爬虫中处理HTTP状态码:
<?php
function getUrlContent($url) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 如果目标URL是HTTPS,需要禁用SSL证书验证
$content = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$error = curl_error($ch);
if ($httpCode == 200) {
// 请求成功,处理返回的内容
echo $content;
} else {
// 请求失败,处理HTTP状态码
echo "Error: HTTP status code - " . $httpCode . "\n";
if ($error) {
echo "Error message: " . $error . "\n";
}
}
curl_close($ch);
}
$url = "https://example.com";
getUrlContent($url);
?>
在这个示例中,我们首先使用curl_init()
初始化一个新的cURL会话。然后,我们设置cURL选项,包括目标URL、是否将返回的内容作为字符串返回、是否跟随重定向以及是否禁用SSL证书验证(如果目标URL是HTTPS)。
接下来,我们使用curl_exec()
执行cURL请求并将返回的内容存储在$content
变量中。同时,我们使用curl_getinfo()
获取HTTP状态码并将其存储在$httpCode
变量中。我们还检查是否有cURL错误,并将其存储在$error
变量中。
最后,我们检查HTTP状态码是否为200(表示请求成功)。如果是,则处理返回的内容。否则,我们输出HTTP状态码和错误消息(如果有)。在完成cURL请求后,我们使用curl_close()
关闭cURL会话。