PHP自动更新新闻实现办法

  • A+
所属分类:PHP编程

我们浏览一些网站的时候,往往看到一些新闻是刚刚更新不久的,如果要是人工维护的话,那会是一项非常繁琐的工作。然而,我们可以通过程序来控制实现更新操作,事情就会变得很方便了(我可不是要偷懒)。

在这里,我使用PHP来实现这一功能。其原理就是根据新闻发布的时间逆序排列好,然后在一页面显示新闻连接列表,每一个连接都对应一条新闻内容网页。具体操作如下:

一、首先,在你的站点下建立一个目录,将编辑好的新闻页都保存在此目录下,将来所有的新闻页都放入这里,方便维护。新闻页格式为超文本方式(可别说你还不会HTML),首行为“<HTML><HEAD><TITLE>新闻标题</TITLE></HEAD>”(原因随后解释)。

二、编写程序,实现新闻自动更新功能(假设文件名为paixu.php)

源程序如下:

  1. <?php
  2. $fp=array("filename"=>"","filetime"=>"","firstline"=>"");//建立数组,保存文件名、文件首行
  3. $dd=dir('新闻保存目录');//读取新闻文件的保存目录
  4. $i=0;
  5. clearstatcache();
  6. while ($file=$dd->read())//循环读出目录中的文件
  7. {
  8. if(is_file($dd->path."/".$file))
  9. {
  10. $fp[$i]["filename"]=$dd->path."/".$file;//保存文件名
  11. $fr=fopen($dd->path."/".$file,"r");
  12. $fp[$i]["firstline"]=fgetss($fr,60);//去除HTML标记后保存文件首行(也就是为什么我们要把新闻页首行写成要求的格式) 
  13. fclose($fr);
  14. if($time=date("Y m d H:i",filemtime($dd->path."/".$file)))//保存文件时间,以此作为排序条件
  15. {
  16. $fp[$i]["filetime"]=$time;
  17. }
  18. $i++;
  19. }
  20. }
  21. $i=count($fp);//保存文件数
  22. $i-=4;
  23. for($j=0;$j<$i;$j++)//按照冒泡算法排序(电脑报已经有文章介绍了,我不罗嗦了)
  24. for($k=$i;$k>$j;$k--)
  25. if($fp[$j]["filetime"]<=$fp[$k]["filetime"])
  26. {
  27. $c=$fp[$j]["filetime"];
  28. $fname=$fp[$j]["filename"];
  29. $fcontent=$fp["$j"]["firstline"];
  30. $fp[$j]["filetime"]=$fp[$k]["filetime"];
  31. $fp[$j]["filename"]=$fp[$k]["filename"];
  32. $fp[$j]["firstline"]=$fp[$k]["firstline"];
  33. $fp[$k]["filetime"]=$c;//line30
  34. $fp[$k]["filename"]=$fname;
  35. $fp[$k]["firstline"]=$fcontent;
  36. }
  37. for($i=0;$i<=(count($fp)-4);$i++)//读取保存的文件信息,做好相应连接
  38. {
  39. echo "<tr><td>";
  40. echo "<a href=".$fp[$i]["filename"].">".$fp[$i]["firstline"]."</a>";
  41. echo "</td><td class=font1>";
  42. echo "(".$fp[$i]["filetime"].")<br>\n";
  43. echo"</td></tr>";
  44. }
  45. $dd->close();
  46. ?>

三、将程序和目录放到你的网站上,然后在浏览器敲入HTTP://网站名/目录/panxu.php,能看到吗?

最后,再罗嗦几句(我可不是要多赚Money,主要还是为人民服务),你的网站必须支持php功能。

而且,我仅仅提供了基本的功能,你可以增加更多的控制功能,还有页面的修饰和美化等工作,就要靠你自己了(什么?说我不负责到底?我苦...)。 好了,就先到此为止。有什么不对的地方,还请大家多指教,可发Email:zbclh@sina.com与我联系交流。