When curl is refusing to work as you expect…

…you probably need to look at the many options curl offers. But let me start from the beginning.

Problem:

    $curl = curl_init();

    $url = 'http://api.somewebsite.com/whatever';
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

    $result = curl_exec($curl);

was returning an empty string, while

    $result = file_get_contents($url);

worked fine. Now I’m not the biggest fan of opening an URL using file_get_contents(), so I tried some of the many options and finally found the one that solved my problem.

    $curl = curl_init();

    $url = 'http://api.somewebsite.com/whatever';
    curl_setopt($curl, CURLOPT_URL, $url);
    // important option goes here...
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

    $result = curl_exec($curl);