PHP分页类分享

分享一个常用的php分页类。有三种表现形式,具体效果图如下:

(1)

(2)

(3)

该php分页类的具体代码以及使用方法如下:

/***PHP分页类 **show(2) 1 ... 62 63 64 65 66 67 68 ... 150*分页样式*#page{font:12px/16px arial}*#page span{float:left;margin:0px 3px;}*#page a{float:left;margin:0 3px;border:1px solid #ddd;padding:3px*7px;text-decoration:none;color:#666}*#page a.now_page,#page a:hover{color:#fff;background:#05c} */class Pager{	public $first_row;//起始行数	public $list_rows;//列表每页显示行数	protected $total_pages;//总页数	protected $total_rows;//总行数	protected $now_page;//当前页数	protected $method="defalut";//处理情况 Ajax分页 Html分页(静态化时) 普通get方式	protected $parameter="";	protected $page_name;//分页参数的名称	protected $ajax_func_name;	public $plus=3;//分页偏移量	protected $url;	/**	*构造函数	 *	*@param unknown_type $data	 */	public function __construct($data=array()){		$this->total_rows=$data["total_rows"];		$this->parameter=!empty($data["parameter"])?$data["parameter"]:"";		$this->list_rows=!empty($data["list_rows"])&&$data["list_rows"]<=100?$data["list_rows"]:15;		$this->total_pages=ceil($this->total_rows / $this->list_rows);		$this->page_name=!empty($data["page_name"])?$data["page_name"]:"page";		$this->ajax_func_name=!empty($data["ajax_func_name"])?$data["ajax_func_name"]:"";		$this->method=!empty($data["method"])?$data["method"]:"";		/* 当前页面 */		if(!empty($data["now_page"])){			$this->now_page=intval($data["now_page"]);		}else{			$this->now_page=!empty($_GET[$this->page_name])?intval($_GET[$this->page_name]):1;		}		$this->now_page=$this->now_page<=0?1:$this->now_page;		if(!empty($this->total_pages)&&$this->now_page>$this->total_pages){			$this->now_page=$this->total_pages;		}		$this->first_row=$this->list_rows*($this->now_page-1);	}	/**	*得到当前连接	 *	*@param	*       	$page	*@param	*       	$text	*@return string	 */	protected function _get_link($page,$text){		switch ($this->method){			case "ajax" :				$parameter="";				if($this->parameter){					$parameter=",".$this->parameter;				}				return "".$text.""."";				break;			case "html" :				$url=str_replace("?",$page,$this->parameter);				return "".$text."";				break;			default :				return "_get_url($page)."">".$text."";				break;		}	}	/**	*设置当前页面链接	 */	protected function _set_url(){		$url=$_SERVER["REQUEST_URI"].(strpos($_SERVER["REQUEST_URI"],"?")?"":"?").$this->parameter;		$parse=parse_url($url);		if(isset($parse["query"])){			parse_str($parse["query"],$params);			unset($params[$this->page_name]);			$url=$parse["path"]."?".http_build_query($params);		}		if(!empty($params)){			$url.="&";		}		$this->url=$url;	}	/**	*得到$page的url	 *	*@param $page 页面	*@return string	 */	protected function _get_url($page){		if($this->url === NULL){			$this->_set_url();		}		//	$lable=strpos("&",$this->url) === FALSE?"":"&";		return $this->url.$this->page_name."=".$page;	}	/**	*得到第一页	 *	*@return string	 */	public function first_page($name="第一页"){		if($this->now_page>5){			return $this->_get_link("1",$name);		}		return "";	}	/**	*最后一页	 *	*@param	*       	$name	*@return string	 */	public function last_page($name="最后一页"){		if($this->now_page<$this->total_pages-5){			return $this->_get_link($this->total_pages,$name);		}		return "";	}	/**	*上一页	 *	*@return string	 */	public function up_page($name="上一页"){		if($this->now_page!=1){			return $this->_get_link($this->now_page-1,$name);		}		return "";	}	/**	*下一页	 *	*@return string	 */	public function down_page($name="下一页"){		if($this->now_page<$this->total_pages){			return $this->_get_link($this->now_page+1,$name);		}		return "";	}	/**	*分页样式输出	 *	*@param	*       	$param	*@return string	 */	public function show($param=1){		if($this->total_rows<1){			return "";		}		$className="show_".$param;		$classNames=get_class_methods($this);		if(in_array($className,$classNames)){			return $this->$className();		}		return "";	}	protected function show_2(){		if($this->total_pages!=1){			$return="";			$return.=$this->up_page("<");			for($i=1;$i<=$this->total_pages;$i++){				if($i==$this->now_page){					$return.="$i";				}else{					if($this->now_page-$i>=4&&$i!=1){						$return.="...";						$i=$this->now_page-3;					}else{						if($i>=$this->now_page+5&&$i!=$this->total_pages){							$return.="...";							$i=$this->total_pages;						}						$return.=$this->_get_link($i,$i);					}				}			}			$return.=$this->down_page(">");			return $return;		}	}	protected function show_1(){		$plus=$this->plus;		if($plus+$this->now_page>$this->total_pages){			$begin=$this->total_pages-$plus*2;		}else{			$begin=$this->now_page-$plus;		}		$begin=($begin>=1)?$begin:1;		$return="";		$return.=$this->first_page();		$return.=$this->up_page();		for($i=$begin;$i<=$begin+$plus*2;$i++){			if($i>$this->total_pages){				break;			}			if($i==$this->now_page){				$return.="$i";			}else{				$return.=$this->_get_link($i,$i);			}		}		$return.=$this->down_page();		$return.=$this->last_page();		return $return;	}	protected function show_3(){		$plus=$this->plus;		if($plus+$this->now_page>$this->total_pages){			$begin=$this->total_pages-$plus*2;		}else{			$begin=$this->now_page-$plus;		}		$begin=($begin>=1)?$begin:1;		$return="总计 ".$this->total_rows." 个记录分为 ".$this->total_pages." 页,当前第 ".$this->now_page." 页 ";		$return.=",每页 ";		$return.="list_rows."" id="pageSize" size="3"> ";		$return.=$this->first_page();		$return.=$this->up_page();		$return.=$this->down_page();		$return.=$this->last_page();		$return.="";		return $return;	}}

郑重声明:本文版权包含图片归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们(delete@yzlfxy.com)修改或删除,多谢。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

留言与评论(共有 0 条评论)
昵称:
匿名发表
   
验证码: