分类:
2008-04-13 22:04:45
首先从index.php下手:require("config.php"); include("function.php");require和include的区别还是比较重要的。手册:。
现在看看config.php和function.php里面都有什么东西吧。
config.php定义了一些整个网站都要用到的变量:比如管理员帐号、密码、存放留言路径及文件名以及每页显示的留言条数。记得Discuz里也有这么一个东西,可能这是所有PHP站点的不成文规定?
function.php定义了一系列的函数,比如检查用户名、密码,转换UBB代码之类的,不过偶不知道UBB代码是什么东西~。暂时不管了。
回到index.php。后面定义了几个暂时不知道有什么用的变量,暂时越过去吧,郁闷。紧接着是一个header函数。包含一个叫head.php的文件,用file()将保存留言的文件读到一个叫msgd的数组中。
今天大概把源代码看懂了,不过实在太晚了,就暂时不写了,以后再说吧。应该安个Word然后直接复制过来(我也不知道为什么我机器上没有Word~~)。总之今天休息了,明天白天又没有时间,晚上不回家住,后天先送人去火车站,然后就回学校了。真不知道什么时候能有时间继续我的PHP。
require("head.php"); 包含一个文件,不过head似乎只被index.php包含了,不知道为什么不直接写进去。head部分的代码主要是提供搜索留言的表单。
$msgd=file($dbtable); 其中$dbtable在config中已经定义了,$dbtable="data/data.dat"; 该文件用于保存留言。这里用了将这个文件保存在$msgd数组中。文件的每一行是一个数组元素。
$rows=count($msgd);这里将用count函数将$msgd的元素数(留言数)存在$rows中。
if($kw)//关键词,判断是不是搜索
{
for ($i=0;$i<=$rows;$i++)//遍历
{
$tmp2=("|分割符|",$msgd[$i]);//没一条留言存在tmp2这个数组中。
if($type=="name")//如果是按姓名搜索
{
$msgn[$i]=$tmp2[1];//将名字村在$msgn[$i]中
}else//不是按名字搜索的话
{
$msgn[$i]=$tmp2[10];//将留言数组的第10个元素存在msgn[$i]中
}
if(($kw,$msgn[$i]))
{
$chj_nr[]=$msgd[$i];//使用数组$chj_nr[]存放一条完整的留言
$chj_numib++;//符合要求的留言数量
}
}
if($chj_numib<1) {echo "没有相关 $kw 的匹配结果!!";exit;}
$msg=($chj_nr);//将符合搜索结果的留言数组
$total=($chj_numib/$pagesize); //计算总页面数
}else//如果不是搜索
{
$chj_numib=$rows;//所有留言
$msg=array_reverse($msgd);
$total=ceil($chj_numib/$pagesize);
}
//echo $total;
if($pagesize*$total<$chj_numib)
{
$total++;
}
$total2=$total-1; //下面有用
$page2=$page+1; //同上
$pp=$page*$pagesize; //计算开始条数 //当前页的开始
$pp2=$pp+$pagesize; //计算结尾条数 //同上
$nextpage=$page+2; //下一个页面
$prevpage=$page; //上一个页面
for($i=$pp;$i<$pp2;$i++)//这个for循环用于输出符合要的所有留言(数组$msg)
{
if($i<$chj_numib){ #####
$tmp=explode("|chjia_com|",$msg[$i]);
$tmp[10]=epost($tmp[10]);
?>
后面就是输出一个留言了。到这里index.php就基本完事了。