我正在尝试使用PHP中的cURL解析网站列表,但遇到了检测回复响应时遇到的任何html错误的问题。根据php手册,下面的代码片段应该有助于检测任何错误(错误意味着页面无法解析,所以像404或500这样的东西在我的书中是错误的):
if(curl_error($c)) {
print_r( 'error:' . curl_error($curl));
}
以上代码适用于404错误,但无法捕获500个错误(例如,可能会有更多错误没有捕获)。我当然可以用这个:
$httpCode = curl_getinfo ( $curl, CURLINFO_HTTP_CODE );
但是我必须手动添加检查以评估变量并忽略结果,如果结果是500或404或401等。我怎样才能简单而准确地忽略对解析网站无用的响应?
答案 0 :(得分:0)
$wrong_http_codes = '^0|4.*|5.*$';
$http_code = curl_getinfo($curl, CURLINFO_HTTP_CODE);
if (preg_match("/$wrong_http_codes/", $http_code) === 1) {
echo 'Error';
}