我正在寻找一个在PHP中缓存RSS提要的解决方案。我计划使用Magpie解析器( (http://magpierss.sourceforge.net/)进行解析。但是,我该如何缓存提要(以防有时候提要提供者不让我阅读相同的提要,等等)?
致以问候。
发布于 2010-08-12 06:41:15
瞧,缓存。
发布于 2010-08-12 06:55:04
使用wget获取提要列表,比如每小时获取一次。
将它们写入名为/cache的文件夹中
重复一遍。
只要a)每小时足够好,b)每小时对所有提要足够好,以及c)您可以访问cron,就可以很好地工作。
我想知道为什么你要获取和提供提要,除非你正在对它们进行一些获取后的分析。
发布于 2010-08-13 15:27:31
@Byron Whitlock好的,我也在做同样的事情.但我决定不使用MagPie。相反,我使用rss2html.php,它根据我提供的超文本标记语言模板,从我获取的RSS生成超文本标记语言代码。当我说include("rss2html.php")时,它会生成超文本标记语言。所以我没有缓存RSS,而是缓存了这个已经生成的HTML。这是我非常简单的代码块:
<?php
$hashfromURL = hash("md5",$url);
$cachefile = "cache/rss/".$hashfromURL.".html";
$cachetime = 5*60; //5 minuta TODO:Pri deployment-u povecati na sat-dva.
//Serviraj is kesha ako je mladji od $cachetime
if(file_exists($cachefile) && (time() - filemtime($cachefile) < $cachetime ))
{
include($cachefile);
echo "RSS ucitan iz kesha!";
}
else{//Ucitaj RSS ponovo
$XMLfilename = $url;
//Pocni dump buffera
ob_start();
include("rss2html.php");//HTML parsiran sadrzaj RSS-a
//Otvori kesh fajl za pisanje
$fp = fopen($cachefile, 'w');
//Sacuvaj sadrzaj izlaznog buffer-a u fajl
fwrite($fp, ob_get_contents());
//zatvori fajl
fclose($fp);
//Posalji izlaz na browser
ob_end_flush();
echo "RSS osvjezen - feed ponovo ucitan!";
}
?>https://stackoverflow.com/questions/3463383
复制相似问题