2014-02-11 56 views
0

我想解析一個在PHP中使用cURL的網站列表,但遇到檢測到在獲取響應時遇到的任何html錯誤的問題。根據PHP手冊中,下面的代碼段應有助於發現錯誤(錯誤意味着頁面是無用的分析,所以,只要像404或500是一個錯誤在我的書),在通話過程中:使用CURL檢測錯誤

if(curl_error($c)) { 
    print_r('error:' . curl_error($curl)); 
} 

的上面的代碼確實可以用於404錯誤,但無法捕獲500個錯誤(例如,可能會有更多錯誤無法捕獲)。當然,我可以用這個:

$httpCode = curl_getinfo ($curl, CURLINFO_HTTP_CODE); 

但後來我不得不手動添加檢查,以評估該變量,忽略結果,如果結果是500或404或401等我怎麼能簡單地和準確地忽視對解析網站沒有用的迴應?

+1

'if($ httpCode == 200){' – cmorrissey

回答

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'; 
}