Может быть, вы забыли установить опцию CURLOPT_RETURNTRANSFER в вызове curl?Когда он установлен, содержимое ответа возвращается самой функцией curl_exec ().
Это код из моего рабочего проекта:
$options = array(
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_RETURNTRANSFER => $this->return_content, // return web page
CURLOPT_HEADER => false, // don't return headers, they are processed through callback
CURLOPT_FOLLOWLOCATION => $this->follow_redirects, // follow redirects
CURLOPT_ENCODING => "", // handle all encodings
CURLOPT_USERAGENT => $this->user_agent, // who am i
CURLOPT_CONNECTTIMEOUT => $this->connect_timeout, // timeout on connect
CURLOPT_TIMEOUT => $this->request_timeout, // timeout on response
CURLOPT_BINARYTRANSFER => true,
);
$extraheaders = array();
$res = curl_init( $url );
curl_setopt_array( $res, $options );
$content = curl_exec( $res );