2011-01-28 5 views
-1

RSSフィードの最新のアイテムを表示するウェブサイトを開発しています。しかし、ユーザーがウェブサイトにアクセスするたびに、ページにキャッシュされたデータを表示したいと思います。これにより、50以上のRSSフィードをキャッシュする予定があるので、ページの表示がより迅速になります。ウェブサイトに表示するRSSフィードデータをキャッシュする方法は?

私の質問は、RSSフィードをキャッシュするにはどうすればよいですか?それは4時間ごとにバックグラウンドで更新されますか?

ありがとうございます。

+1

'cron'ジョブは、データベースへのフィードを読み込みます。アクセス時に、データベースから読み取ります。 – drudge

+0

RSS XMLを解析する最良の方法は何ですか? – BigMike

答えて

4

すべてのRSSフィードを保存するキャッシュフォルダを作成します。

ページが読み込まれたら、ファイルがダウンロードされずに処理されているかどうかを確認します。

ファイルが存在し、filemtime($cached_file) + (60 * 60 * 4)の結果がtime()より大きい場合は、RSSフィードが取得されてから4時間未満であることを示します。ページを通常のように表示します。そうでない場合は、ファイルを再ダウンロードして表示してください。

PHPでRSSフィードを解析するためのチュートリアルはたくさんあります。私はPHPのDOMエクステンションを使用する方が好きですが、あなたはそれを行うことができる非常に多くの異なる方法があります。

+0

+1私はこれを非常に気に入っています:)データベースの代わりにファイルシステムに作業の大半をプッシュします(データが出てくる可能性が最も高い)。次のステップは、フィードの合計サイズに応じて、メモリ(memcacheまたはredisなど)を使用することです。 – VBAssassin

1

私はこの問題に取り組むために簡単なPHPクラスを作成しました。私は様々なソースを扱っているので、あなたがそれに投げるもの(xml、jsonなど)を処理できます。ローカルファイル名(保存目的)、外部フィード、有効期限を指定します。まずローカルファイルをチェックします。それが存在し、期限切れでない場合は、内容を返します。有効期限が切れている場合、リモートファイルを取得しようとします。リモートファイルに問題がある場合、キャッシュファイルにフォールバックします。ここ

ブログのポスト:ここhttp://weedygarden.net/2012/04/simple-feed-caching-with-php/

コード:https://github.com/erunyon/FeedCache

関連する問題