PHP CURL Yahoo Finance返回空白

时间:2016-05-31 02:04:26

标签: php curl rss

尝试从Yahoo Finance RSS feed获取一些数据,但是当使用curl时,我得到一个空白的回复。谁知道为什么?

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

如果我使用常规的file_get_contents,它就不会出现问题,例如:

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

我不想使用file_get_contents

1 个答案:

答案 0 :(得分:3)

您的curl函数包含多个错误,这有效(已测试):

<?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");
?>

我从你的功能中删除的所有内容都是错误的或不必要的。我添加了curl_setopt($ch, CURLOPT_FOLLOWLOCATION,1);

您可以阅读有关curl function on php.net

的更多信息