发信人: showtop()
整理人: sltongyong(2000-08-10 10:38:12), 站内信件
|
好,接着上回,其实文件结构出来了,程序写起来就不困难了,是吧。
现在我们来讨论一下如何显示最新发表的文章和人气最旺的文章。
1、相关函数
先介绍两个用到的函数get_top_time 和 get_top_hit。代码如下:
<?php
// 提取标题,按时间排序
//$number 指定所提取的标题个数
function get_top_time($number) {
$dire="page/";
$hd=opendir($dire);
while($fl=readdir($hd)) { //读出此目录下文件
if($fl=="." or $fl=="..") continue;
if(strpos($fl,".info")){ //如果是.info文件,则
$tmp=explode(".",$fl);
$ft=$tmp[0];
//以文件名(不含扩展名)为key,以建立时间为value
$list[$ft]=filemtime($dire.$fl);
}
}
if(count($list)==0) return $list; //如果没有文件,则返回
arsort($list); //排序!!!
for($i=0;$i<$number;$i++) {
$k=key($list);
if($k=="")break;
//取出前number个,打开文件取信息放入二维数组$re_var,以文件名为key。
$fc=file($dire.$k.".info");
$re_var[$k]=$fc;
next($list);
}
return $re_var;
}
//提取标题按点击排序
function get_top_hit($number) {
$dire="page/";
$hd=opendir($dire);
while($fl=readdir($hd)) {
if($fl=="." or $fl=="..") continue;
if(strpos($fl,".info")){
$tmp=explode(".",$fl);
$ft=$tmp[0];
$fc=file($dire.$fl); //打开文件取点击数放入数组中作值
$list[$ft]=$fc[4];
}
}
if(count($list)==0) return $list;
arsort($list);
for($i=0;$i<$number;$i++) {
$k=key($list);
if($k=="")break;
$v=file($dire.$k.".info");
$re_var[$k]=$v;
next($list);
}
return $re_var;
}
?>
2、调用函数方法
先包含进来
<?php
include("phtml/getitle.php3");
$r1=get_top_time(10); //取前10个放入二维数组r1中
$r2=get_top_hit(10);
?>
……
<?php
if(is_array($r1)){ //只有是数组说明有记录,才列出记录
for($j=0;$j<count($r1);$j++){
$i=key($r1); //取键值
//如果你还记得.info的文件格式,下面这句话就不用我多说了吧。
echo "<img src=\"images/dot.gif\" width=\"12\" height=\"12\"><a hr ef=\"phtml/show.php3?id=".$i."\" target=\"_blank\">".$r1[$i][0]."< font color=#2bae8f>[".$r1[$i][1]." ".date("Y-m-j",filemtime("page/" .$i.".info"))."]<br>";
next($r1);
}
}
?>
<未完待续>
-- 让我的所欲渐化虚无
让我的付出渐近无倦
E-mail : [email protected]
url : http://sbiotech.onchina.net《生物技术快报》
http://www.sharetop.onchina.net 《自由岛论坛》
※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 210.75.57.220]
|
|