Ruby 语言 思想驱动生活

Ruby,Rails,编程是一种乐趣。

Tag List for:

给lilina加上历史存档的功能

Posted by liubin on Saturday July 14 @ 11:16
Taged with: tagged

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源文件

  1. <?
  2. //
  3. // author liubin
  4. // last modify: 2007.7.14
  5. // http://liubin.nanshapo.com
  6. //
  7. error_reporting(0);
  8.  
  9. $fn1 = date("Y-W",time() - 7 * 86400);
  10. $fn1 = $fn1.".html";
  11. if (!file_exists($fn1)) {
  12.     copy("../index168.html",$fn1);
  13. }
  14.  
  15. date_default_timezone_set('PRC');
  16. header("Content-Type: text/html; charset=utf-8");
  17. header("Pragma: no-cache");
  18.  
  19. //$dir    = $root;
  20. $dir    = ".";
  21. $files = scandir($dir);
  22. foreach ($files as $file) {
  23.     if(eregi("^[0-9]{4}-[0-9]{1,2}\.html$",$file)){
  24.         echo "<a href =\"/weeks/".$file."\">".$file."</a><br/>\n";
  25.     }
  26. }
  27.  
  28. ?>

每次这个页面被浏览的时候,都会判断指定格式的文件(yyyy-w.html)是不是存在,
如果上个星期(time() - 7 * 86400)的存档还没有,就将index168.html拷贝过来。

这个过程是当这个页面被浏览的时候才会执行,如果一个月都没人看这个网页,那么存档肯定是不会被保存的。
这个转存过程也可以放到根目录的index.php下,大概放在callback的rebuild部分处理,不过我还是放在了另外这个页面里,
把工作交给搜索引擎不知道会不会有什么问题。

这是历史记录的链接:http://ruby.nanshapo.com/weeks/

TAG:

安装了lilina

Posted by liubin on Sunday May 14 @ 8:51
Taged with: tagged

http://ruby.nanshapo.com/
收集的主要都是关于Ruby的blog
如果你有什么好的推荐,也欢迎告诉我一下。

TAG:


Locations of visitors to this page


Recent Comments