2013-05-20 38 views
8

如何使用php curl檢測此錯誤?即使URL不存在,curl也會返回成功。如何在php curl中檢測到URL未找到錯誤?

Not Found 
The requested URL /foo/index.php/items/edit was not found on this server. 

我的代碼

$post_fields = array('info' => json_encode($fields)); 
    curl_setopt($ch,CURLOPT_URL,$url); 
    curl_setopt($ch,CURLOPT_POST,count($post_fields)); 
    curl_setopt($ch,CURLOPT_POSTFIELDS,$post_fields); 
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,true); 
    curl_setopt($ch,CURLINFO_CONTENT_TYPE,'application/x-www-form-urlencoded charset=utf-8'); 

    $result = curl_exec($ch); 
    echo $result; 

    if(curl_error($ch)){ 
     $result = curl_error($ch); 
     curl_close($ch); 
     return $result; 
    }else{ 
     curl_close($ch); 
     return json_decode($result,true); 

    } 
+4

$ HTTP_STATUS = curl_getinfo($ CH,CURLINFO_HTTP_CODE)發出這條線;檢查它是否是404或其他東西 –

+0

找不到URL應該返回404錯誤,所以你應該檢查響應的標題。 – MatRt

回答

9

使用它來獲取HTTP狀態代碼:

$code = curl_getinfo($ch, CURLINFO_HTTP_CODE); 

如果404,這意味着該請求URL無法找到。

注:記得以前curl_close($ch);

+0

其工作thanks..but我可以假設除200以外的所有狀態代碼是失敗? – Harikrishnan

+1

是的,但你也應該看看服務器對你的迴應。 200只意味着請求成功。 – Raptor

相關問題