0

バックグラウンド

phpを使用したRSSフィードをHTMLドキュメントに含めようとしています

コード

<?php
include ("feed url");
?> 

sslコマンドを使用して、次のようにhtmlファイルにincludeタグを正常に追加しました。

<!--#include virtual="rssfeed.php" -->

htaccessファイルを編集した後は正常に動作します。ここで問題となるのは、include( "feed url")を使用しているphpimで次のエラーが発生するためです。

警告:include()[function.include]:2行目のpath/rssfeed.phpのサーバー構成でURLファイルアクセスが無効になっています

警告:include(feed url)[function.include]:ストリームを開くことができませんでした:2行目のpath/rssfeed.phpに適切なラッパーが見つかりませんでした

ここで、php_value allow_url_fopen 1を設定しようとしましたが、ファイルがサードパーティのホスティングサーバーに保持されているため、アクセスが多くないため、明らかな理由でallow_url_fopenをONにできないようになっています。だから私の質問は、この問題をどのようにアプローチするのですか?どんな方向も大いに認められます。

読んでくれてありがとう。

4

2 に答える 2

2

サーバーは、リモートの場所から含めることができないように構成されています。これは共有ホスティング環境で一般的であり、サーバーの負荷を減らし、悪意のあるコードが誤って実行される可能性を減らすのに役立ちます。

ただし、私があなたの言うことを正しく理解していれば、RSSフィードinclude()は有効なPHPコードではないため、とにかく構成を使用してRSSフィードを含めることはできませんinclude()。パスは有効なPHPソースコードファイルである必要があります。サーバーで許可されている場合、実行していることは、役に立たない出力または解析エラーのいずれかになります。

RSSフィードに接続し(リモートサイトへのリクエストを制御するレベルに応じてcURLまたはfsockopen()を使用するなど)、適切な形式で出力できるようにフィードデータを解析する必要があります。

于 2011-08-28T12:34:38.243 に答える
0

include "http://..."のコンテンツはhttp://...PHPコードとして評価されるため、RSSフィードの応答に誰かがPHPコードを挿入できると、サイトが攻撃を受けやすくなります。

別のサイトのデータを表示する場合は、curlを使用します。PHPマニュアルの例から:

<?php
// create a new cURL resource
$ch = curl_init();

// set URL and other appropriate options
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch, CURLOPT_HEADER, 0);

// grab URL and pass it to the browser
curl_exec($ch);

// close cURL resource, and free up system resources
curl_close($ch);
?>
于 2011-08-28T12:32:48.587 に答える