dps43633 2016-05-31 02:04
浏览 69
已采纳

PHP CURL雅虎财务回归空白

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

  • 写回答

1条回答 默认 最新

  • doujun5009 2016-05-31 02:10
    关注

    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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?