如何使用CURL而不是file_get_contents重写此RSS阅读器?

时间:2012-04-26 18:00:50

标签: php curl rss

不可否认,我是一个新手,只知道危险。

由于安全问题,主机服务器不允许使用file_get_contents。如何使用curl而不是file_get_contents重写下面的代码?

这适用于jquery移动网站上的rss阅读器。该代码基于我在此处找到的教程:nets.tutplus.com/rssreader

<?php
$siteName = empty($_GET['siteName']) ? 'Website' : $_GET['siteName'];
$siteList = array(
'Website2',
'Website3',
'Website4',
'Website5',
'Website6',
);
// For security.
if ( !in_array($siteName, $siteList) ) {
$siteName = 'Website';
}
$location = "http://query.yahooapis.com/v1/public/yql?q=";
$location .= urlencode("SELECT * FROM feed where url='http://feeds.feedburner.com/$siteName'");
$location .= "&format=json";
$rss = file_get_contents($location, true);
$rss = json_decode($rss);
?> 

编辑:这会有用吗?

$location = "http://query.yahooapis.com/v1/public/yql?q=";
$location .= urlencode("SELECT * FROM feed where url='http://feeds.feedburner.com/$siteName'");
$location .= "&format=json";

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $location);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true );
curl_setopt($ch, CURLOPT_POST, true );
curl_setopt($ch, CURLOPT_POSTFIELDS, trim($request)); 
$rss = curl_exec($ch);
curl_close($ch); 

$rss = json_decode($rss);

1 个答案:

答案 0 :(得分:1)

您可以完全删除CURLOPT_POST...行。未设置$request,并且您不需要在此实例中发出GET请求的发布请求。您可能需要也可能不需要使用CURLOPT_FOLLOWLOCATION - 如果curl根本不能使用,请将其打开。