2

確かに、私は初心者で危険なことしか知りません。

セキュリティ上の理由から、ホスト サーバーは file_get_contents を許可しません。file_get_contents の代わりに curl を使用して以下のコードを書き直すにはどうすればよいですか?

これは、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);
4

1 に答える 1

1

CURLOPT_POST...線を完全に 削除できます。$requestは設定されておらず、GET リクエストが実行されるこのインスタンスではポスト リクエストを行う必要はありません。使用する必要がある場合とない場合がありますCURLOPT_FOLLOWLOCATION。curl がまだ必要に応じて機能していない場合は、オンにします。

于 2012-04-26T18:34:47.760 に答える