2

I have the following function:

function file_get_contents_curl($url) {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_USERAGENT, random_user_agent());
    curl_setopt($ch, CURLOPT_HTTPHEADER, 'Content-type: text/plain');
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_URL, $url);
    $data = curl_exec($ch);
    curl_close($ch);
    return $data;
}

I need to have some logic inside this function that if the response code of the URL is for example 404, then return null $data variable. I made an example of what I am looking for:

function file_get_contents_curl($url) {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_USERAGENT, random_user_agent());
    curl_setopt($ch, CURLOPT_HTTPHEADER, 'Content-type: text/plain');
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_URL, $url);
    $data = curl_exec($ch);

    if (empty($data) or (HTTP response code is 404)) {
        // some kind of an error happened
        die(curl_error($ch));
        curl_close($ch); 
        $data = null;
        return $data;
    } else {
        // everything  is ok
        return $data;

    }
}

2 Answers 2

2
function file_get_contents_curl($url) {
            $ch = curl_init();
            curl_setopt($ch, CURLOPT_USERAGENT, random_user_agent());
            curl_setopt($ch, CURLOPT_HTTPHEADER, 'Content-type: text/plain');
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
            curl_setopt($ch, CURLOPT_URL, $url);
            $data = curl_exec($ch);

            if (empty($data) OR (curl_getinfo($ch, CURLINFO_HTTP_CODE == 404))) {
                    // some kind of an error happened
                    die(curl_error($ch));
                    curl_close($ch); 
                    $data = null;
                    return $data;
                } else {
                    // everything  is ok
                    return $data;

                }

        }
Sign up to request clarification or add additional context in comments.

Comments

1

use curl_getinfo($ch) before curl_close() called

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.