Sven Kahn Sven Kahn - 6 months ago 59
PHP Question

PHP CURL Yahoo Finance Returning Blank

Trying to get some data from Yahoo Finance RSS feed, but when using curl I get a blank response. Anyone know why?

function getContents($thisURL) {
$strURL = "$thisURL";
$resURL = curl_init();
$ch = curl_init();
curl_setopt($ch,CURLOPT_ENCODING,'gzip');
curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4 );
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_URL, $strURL);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}


$feed = getContents("http://feeds.finance.yahoo.com/rss/2.0/headline?s=AAPL&region=US&lang=en-US");


If I use regular file_get_contents it works no problem such as:

file_get_contents("http://feeds.finance.yahoo.com/rss/2.0/headline?s=AAPL&region=US&lang=en-US");


I don't want to use file_get_contents

Answer

your curl function contains several errors, this works (tested):

<?php
function getContents($thisURL) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION,1);
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
curl_setopt($ch, CURLOPT_URL, $thisURL);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}

echo getContents("http://feeds.finance.yahoo.com/rss/2.0/headline?s=AAPL&region=US&lang=en-US");
?>

Everything that I removed from you function was wrong or unnecessary. I added curl_setopt($ch, CURLOPT_FOLLOWLOCATION,1);


You can read more about the curl function on php.net