php静态列表分页的代码
一个简单的php生成静态列表分页的代码,之前写的 夏日CMS系统仅仅生成了静态内容页面,没有生成列表的分页,其实网站如果内容量不是特别大的情况下,可以不用生成列表页,对网站的影响不是很大的,仅仅生成静态内容页面就可以了。
当然,如果你的内容量很大,而且又要考虑到网站 SEO 优化等方面的话,可能生成静态的列表页会好一些,而且打开的链接看起来也很舒服,本博已经有了一段生成静态列表的源码,测试已经成功。
下面推荐的是一个比较简单容易理解的 php 静态列表分页的代码,从最基础的连接数据库开始,到生成列表静态页面,都不是很复杂,可以简单的进行测试,然后整合到自己的网站中。
第一页为index.html,第二页为index_2.html,第三页为index_3.html......
[code lang="php"]
$dlpath="../wd/"; //设置生成的路径
$sql3 = "select * from 表名"; //得到分页总数
$res = mysql_query($sql3);
$row = mysql_num_rows($res);
$pagesize = 10; //每页显示数
if($row<$pagesize) $pages = 1;
if($row%$pagesize)
{
$pages=intval($row/$pagesize)+1;
}else{
$pages=intval($row/$pagesize);
}
for($i=1;$i<=$pages;$i++)
{
$page_turn="";
//数字代码开始
$xs=5; //设置显示个数为5
$pi=$i;
$sm="";
//如果页数小于显示个数
if ($pages<$xs){
$start=1;
$end=$pages;
for ($y=$start;$y<=$end;$y++){
if($y==$i ){
$ys="class=\"current\"";
}else{
$ys="";
}
if ($y==1){
$sm .="1";
}
else{
$sm .="".$y."";
}
}
}
else{
$nums1=intval($xs/2);//开始当前的个数
$nums2=$xs%2==0?$nums1-1:$nums1;
if ($pi<=$xs-$nums2) //当前页数小于或等于显示页码减去末尾
//项,当前位置还处于页码范围
{
$start=1;
$end=$xs;
}
else
{
$start=$i-$nums1;
$end=$i+$nums2;
}
//当计算出的末尾大于总页数
if ($end>$pages){
$start=($pages-$xs+1); //开始项等于总页数减去要显示的数
//量然后再自身加1
$end=$pages;
}
for ($y=$start;$y<=$end;$y++){
if ($y==$i){
$ys="class=\"current\"";
}else{
$ys="";
}
if ($y==1){
$sm .="1";
}
else{
$sm .="".$y."";
}
}
}
$tj="共".$pages."页 | 当前第".$i."页 ";
//数字代码结束
if($i==1)
{
$indexpath=$dlpath."index.html";
$page_turn.=$tj."首页 ref='index.html'>上一页".$sm;
}
else{
$indexpath=$dlpath."index_".$i.".html";
$page_turn.=$tj."首页 ef='index_".($i-1).".html'>上一页".$sm;
}
if($i==$pages){
$page_turn.="下一页 ref='index_".$pages.".html'>尾页";
}
else{
$page_turn.="下一页 ef='index_".$pages.".html'>尾页";
}
//获得页面内容
$sql4 = "select * from 表名 order by id desc"." LIMIT ".($i-1)*$p
agesize .", $pagesize";
$result4 = mysql_query($sql4);
$list="";
while($rs4=mysql_fetch_array($result4))
$list .="需要得到的内容";
}
//生成页面代码
$sql="select * from mb "; //取出模板 ,这是放在数据表中的模板
$result=mysql_query($sql);
$rs=mysql_fetch_array($result);
$mb=$rs["nr"]; //得到模板的具体内容
$mb=str_replace("{list}",$list,$mb); //替换,显示的内容
$mb=str_replace("{page}",$page_turn,$mb); //替换, 显示分页链接
fclose($fp);
$handle = fopen($indexpath,"w");
fwrite($handle,$mb);
fclose($handle);
}
[/code]