2011-01-28 43 views
-1

我正在開發一個網站,它將顯示來自RSS提要的最新項目。但是,每次用戶訪問網站時,我都希望頁面顯示緩存的數據。這會使頁面顯示更快,因爲我計劃緩存50個RSS源。如何緩存要在網站上顯示的RSS提要數據?

我的問題是,我如何緩存RSS提要,但確保它每隔4個小時左右在後臺更新?

在此先感謝。

+1

`cron`工作讀飼料到你的數據庫。在訪問時,從數據庫中讀取。 – drudge 2011-01-28 00:26:37

+0

什麼是解析RSS XML的最佳方式? – BigMike 2011-01-28 00:35:25

回答

4

創建一個緩存文件夾來存儲所有RSS提要。

當頁面加載時,檢查文件是否存在,如果它沒有下載並處理它。

如果該文件存在,並且filemtime($cached_file) + (60 * 60 * 4)的結果大於time(),這意味着它已經少於自提取RSS提要以來的4小時。像正常一樣顯示頁面。如果不是這種情況,請重新下載並顯示文件。

有很多關於在PHP中解析RSS提要的教程。我更喜歡使用PHP的DOM擴展,但有很多不同的方法可以做到。

1

我創建了一個簡單的PHP類來解決這個問題。由於我正在處理各種來源,它可以處理任何你在它(xml,json等)的投入。您給它一個本地文件名(用於存儲目的),外部提要以及到期時間。它從檢查本地文件開始。如果它存在並且沒有過期,則返回內容。如果它已過期,它將嘗試獲取遠程文件。如果遠程文件存在問題,它將回退到緩存文件。

此處的博客文章:http://weedygarden.net/2012/04/simple-feed-caching-with-php/

代碼在這裏:https://github.com/erunyon/FeedCache