给lilina加上历史存档的功能
lilina是一个用php写的web新闻聚合器,他非常简单但是非常强大.不需要数据库支持,这个比较方便,但是可能也会带来速度上的问题,我有时候login都要很半天,也许不是读写文件的问题。
默认的lilina只有4个页面,index24,index48,index168还有index-1
index-1是所有的数据,时间长了或者数据多了,这个文件会很大,所以在想是不是给lilina加个存档功能?
简单的想法就是每个星期一个文件存档,所以只需要拷贝index168这个文件就行了。
打算将存单的文件都放在lilina的根目录下的weeks目录,所以
首先在index.php里面加一个链接到weeks/index.php,当然,目录可以自己换。
然后编译weeks/index.php源文件
- <?
- //
- // author liubin
- // last modify: 2007.7.14
- // http://liubin.nanshapo.com
- //
- error_reporting(0);
- $fn1 = date("Y-W",time() - 7 * 86400);
- $fn1 = $fn1.".html";
- if (!file_exists($fn1)) {
- copy("../index168.html",$fn1);
- }
- date_default_timezone_set('PRC');
- header("Content-Type: text/html; charset=utf-8");
- header("Pragma: no-cache");
- //$dir = $root;
- $dir = ".";
- $files = scandir($dir);
- foreach ($files as $file) {
- if(eregi("^[0-9]{4}-[0-9]{1,2}\.html$",$file)){
- echo "<a href =\"/weeks/".$file."\">".$file."</a><br/>\n";
- }
- }
- ?>
每次这个页面被浏览的时候,都会判断指定格式的文件(yyyy-w.html)是不是存在,
如果上个星期(time() - 7 * 86400)的存档还没有,就将index168.html拷贝过来。
这个过程是当这个页面被浏览的时候才会执行,如果一个月都没人看这个网页,那么存档肯定是不会被保存的。
这个转存过程也可以放到根目录的index.php下,大概放在callback的rebuild部分处理,不过我还是放在了另外这个页面里,
把工作交给搜索引擎不知道会不会有什么问题。
这是历史记录的链接:http://ruby.nanshapo.com/weeks/