How can I detect URL Not Found Error in php curl?
Asked Answered
R

1

8

How can I detect this error using php curl? curl return success even if the URL does not exist.

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

My code

$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);

    }
Ranita answered 20/5, 2013 at 4:37 Comment(2)
$http_status = curl_getinfo($ch, CURLINFO_HTTP_CODE); check it if it is 404 or something elseHomegrown
url not found should return a 404 error, so you should check on the headers of the response.Nabors
P
11

use this to get HTTP status code:

$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);

If 404, it means the request URL cannot be found.

Note: remember to issue this line before curl_close($ch);

Plenary answered 20/5, 2013 at 4:40 Comment(2)
its working thanks..but Can I assuem that all status codes other than 200 is a failure?Ranita
Yes, but you should look into what server responses to you too. 200 only means the request is successful.Plenary

© 2022 - 2024 — McMap. All rights reserved.