<?php /* php 分页类 只要实现分页。不与数据库教程连接。 如果是伪静态 只需修改84行以下的A标签即可 如 "<a href='index_".$i.".html'>".$i."</a>" (index_表示你的伪静态地址) 其他的A标签页是一样 */ /* 鄙人工作时间写了个简单实用的 php 分页类 现和大家分享。。 QQ:348145486 email: tzk_php@163.com 欢迎大家一起学习交流 */ class Page{
public $page_size="20"; //每页显示的数据数目 public $page_num; //总的数据数目 public $page_url=""; //分页的当前URL public $pageval; //分页的当前页 public $page_ys; //总的页数 public $page_tf=false; //判断能否执行分页的值 public $page; /**********初始化分页类************/ function __construct($page_num,$page_size=""){ $this->page_num=$page_num; //获取所有需要显示的数据数目 if($page_size!=""){ $this->page_size=$page_size; //获取每页显示数据数据 } $this->page_url=$_SERVER['SCRIPT_NAME']; //获取当前的URL地址 if($this->page_num>$this->page_size){ //判断是否能执行分页 $this->page_ys=ceil($this->page_num/$this->page_size); //获取总的分页数 $this->page_tf=true; //将分页权限复制以便下面再次判断 } if(!empty($_GET['page'])){ //只允许页码在分页数范围内 if($_GET['page']>="1"){ if($_GET['page']<=$this->page_ys){ $this->pageval=$_GET['page']; }else{ $this->pageval=$this->page_ys; } }else{ $this->pageval="1"; } }else{ $this->pageval="1"; } $this->page=($this->pageval-1)*$this->page_size; //查询数据库数据时的第一条数据 } /************执行分页 返回分页按钮**********/ function page_fy($val=""){ if($this->page_tf==true){ if($val==""){ return $this->page_style_one(); }else if ($val=="1"){ return $this->page_style_two(); }elseif ($val=="2"){ return $this->page_style_three(); } } }
/**********分页按钮 样式一*********/ function page_style_one(){ if($this->pageval=="1"){ $up="1"; }else{ $up=$this->pageval-1; } if($this->pageval>=$this->page_ys){ $down=$this->page_ys; }else{ $down=$this->pageval+1; } $one="<a href='".$this->page_url."?page=1'>首页</a>"; $two="<a href='".$this->page_url."?page=".$up."'>上一页</a>"; $three="<a href='".$this->page_url."?page=".$down."'>下一页</a>"; $four="<a href='".$this->page_url."?page=".$this->page_ys."'>末页</a>"; return $page_echo = $one.$two.$three.$four; } /***********分页按钮 样式二*************/ function page_style_two(){ //下面这个呢,逻辑很复杂,思维很林乱, $page_echo=""; if($this->pageval=="1"){ $up="1"; }else{ $up=$this->pageval-1; } if($this->pageval>=$this->page_ys){ $down=$this->page_ys; }else{ $down=$this->pageval+1; } $two="<a href='".$this->page_url."?page=".$up."'>上一页</a>"; $three="<a href='".$this->page_url."?page=".$down."'>下一页</a>"; if($this->page_ys>"6"){ if($this->pageval<=3){ $i=2; $i_to=5; }elseif ($this->pageval>=($this->page_ys-2)){ $i=$this->page_ys-4; $i_to=$this->page_ys-1; }else{ $i=$this->pageval-2; $i_to=$this->pageval+2; } if($this->pageval>4){ $page_one="..."; }else{ $page_one=""; } if($this->pageval<($this->page_ys-3)){ $page_two="..."; }else{ $page_two=""; } for ($i;$i<=$i_to;$i++){ $page_echo.="<a href='".$this->page_url."?page=".$i."'>".$i."</a>"; //如果是伪静态 只需修改A标签即可 如 "<a href='index_".$i.".html'>".$i."</a>" 其他的A标签页是一样 } }else{ for ($i=2;$i<=($this->page_ys-1);$i++){ $page_echo.="<a href='".$this->page_url."?page=".$i."'>".$i."</a>"; } } return $two."<a href='".$this->page_url."?page=1'>1</a>".$page_one.$page_echo.$page_two."<a href='".$this->page_url."?page=".$this->page_ys."'>".$this->page_ys."</a>".$three; } /*****************分页按钮 样式三 样式3大家可以写了。 *******************/ function page_style_three(){ return $this->page_style_two(); } } ?> |