使用cURL時,假如使用以下代碼
if( curl_exec($ch) ){ //success } else { //error }
就算那個網頁404,都會跑去success那邊。
需要使用以下設置
$ch = curl_init($url); curl_setopt($ch, CURLOPT_HEADER, FALSE); curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); curl_setopt($ch, CURLOPT_FAILONERROR, TRUE); //處理失敗判斷 $onlineData = curl_exec($ch); if( curl_exec($ch) ){ //success } else { //error }
就能解決。
因為設置 CURLOPT_FAILONERROR 為 TRUE時,使用curl返回的http狀態碼大於400都會判定為處理失敗。