2013-05-20 5 views
8

どのように私はこのエラーをPHPのカールを使用して検出できますか? URLが存在しない場合でもカールは成功します。PHPカールで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ステータスコードを取得する:404場合

$code = curl_getinfo($ch, CURLINFO_HTTP_CODE); 

を、その要求のURLが見つからないことを意味します。

注:curl_close($ch);

+0

そのおかげで..200以外のすべてのステータスコードが失敗であると断言できますか? – Harikrishnan

+1

はい、しかし、どのサーバーの応答にも注意してください。 200は、要求が成功したことを意味します。 – Raptor

関連する問題