我正在寻找一种解决方案来缓存PHP中的RSS提要。我打算用Magpie RSS解析器(http://magpierss.sourceforge.net/)进行解析。但是,那么我怎样才能缓存提要(有时候提要提供商不会让我阅读相同的提要等)?PHP RSS缓存
问候。
我正在寻找一种解决方案来缓存PHP中的RSS提要。我打算用Magpie RSS解析器(http://magpierss.sourceforge.net/)进行解析。但是,那么我怎样才能缓存提要(有时候提要提供商不会让我阅读相同的提要等)?PHP RSS缓存
问候。
瞧缓存。
您也可以执行条件GET,以避免在Feed没有更改的情况下再次传送Feed。 – Artefacto 2010-08-11 23:07:20
提取饲料列表说,每小时使用wget。
将它们写入名为/ cache的文件夹中
重复。
罚款,只要这会工作的)每小时是不够好B)每小时是所有饲料不够好,和c)你有机会与cron
总得知道你为什么被获取和服务的饲料,除非你他们正在对它们进行一些后期分析。
不喜鹊内置缓存?为什么不使用它?我个人使用SimplePie。这里是文档的缓存了SimplePie:
http://simplepie.org/wiki/faq/how_does_simplepie_s_caching_http_conditional_get_system_work
我想知道我为什么被拒绝? :-( – 2010-08-20 12:57:08
+1,你不应该被低估,我发现这有帮助。 – 2013-04-03 02:34:51
@Byron惠特洛克 好吧,我是在做〜同样的事情。但我决定不使用MagPie。相反,我使用rss2html.php,它基于我提供的HTML模板从RSS获取HTML生成代码。当我说include(“rss2html.php”)时,它会生成HTML。所以不是缓存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!";
}
?>
MagpieRSS有一个内置缓存,缓存检索到的文件1小时。有关可以使用的设置,请参阅rss_fetch.inc。 – Kwebble 2010-08-12 12:09:05