2013-05-20 5 views
8

어떻게 PHP 컬을 사용하여이 오류를 감지 할 수 있습니까? URL이 존재하지 않더라도 컬링 리턴 성공.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