发信人: showtop()
整理人: sltongyong(2000-08-10 10:47:18), 站内信件
|
这节要谈的是如何显示文章与评论。
这部分只用了一个文件来实现show.php3,内含了一个发表评论的表单。
可以接受外部调用时传来的一个参数:
$id 文件名,不含扩展名
同时本程序也可接受自身传递来的四个参数:
$id 隐含类型,就是外部传来的$id再传一遍 :)
$name 文本,评论者大名
$email 文本,评论者的email,可为空
$content 多行文本,评论内容
源程序如下:
<?php
//打开.info文件和.body文件
$r1=file("../page/".$id.".info"); //还记得我的目录和文件结构吧。
$r2=file("../page/".$id.".body");
//取info文件建立时间,格式化成字串
$dd=date("Y-m-j",filemtime("../page/".$id.".info"));
//取点击数,加1,注意这里要加一个回车!!!
//因为PHP是弱类型的语言,你给它+1,它就变成数值了,所以再给个回车变 //回字串好写入文件。
$r1[4]=($r1[4]+1)."\n";
//如果是自身调用,则说明有评论,那就写入吧…
if(!empty($name) and !empty($content)) {
//我说过用r0、r1…作评论的扩展名
$fn="../reply/".$id.".r".chop($r1[5]);
$r1[5]=($r1[5]+1); //回复数加1
$c=nl2br($content);
$d=date("Y-m-j H:i:s");
$fp=fopen($fn,"w");
fputs($fp,$name."\n"); fputs($fp,$emailadd."\n");
fputs($fp,$d."\n"); fputs($fp,$c."\n");
fclose($fp);
}
//先看一下有没有相应的info文件
if(!file_exists("../page/".$id.".info"))
{ echo "没有找到文件!";exit;}
//先把改动了的点击数与回复数写回到文件中
$fp=fopen("../page/".$id.".info","w");
for($i=0;$i<6;$i++){
fputs($fp,$r1[$i]);
}
fclose($fp);
//打开每个评论文件,读入一个二维数组
for($i=0;$i<$r1[5];$i++){
$f="../reply/".$id.".r".$i;
if(!file_exists($f))continue;
$r3[]=file($f);
}
?>
现在我们得到三个数组:
$r1:文章标题、作者、email、点击数、回复数
$r2:文章内容
$r3[]:这是一个二维数组:
评论数 X 每个评论的信息(作者、email、时间、内容)
$dd:这是文章发表的时间,我们取出来的,记得吧。
显示这三个数组了,应该很容易做到了,就看你想要的格式了。
显示作者及时间代码如下:
<?php
echo "[<a href=mailto:".$r1[2].">".$r1[1]." ".$dd."]<br> 本文被阅 ".$r1[4]." 次";
?>
显示评论的代码如下:
<?php
$k=count($r3);
if($k>0){
for($i=0;$i<$k;$i++) {
echo "<p><img src=\"../images/dot.gif\" width=\"12\" height=\"12\" ><a href=mailto:".$r3[$i][1].">".$r3[$i][0]." 于 ".$r3[$i][2]." 评论说:<br>";
for($j=3;$j<count($r3[$i]);$j++){
echo $r3[$i][$j];
}
echo "</p>";
}
}
?>
<未完待续>
-- 让我的所欲渐化虚无
让我的付出渐近无倦
E-mail : [email protected]
url : http://sbiotech.onchina.net《生物技术快报》
http://www.sharetop.onchina.net 《自由岛论坛》
※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 210.75.57.220]
|
|