龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > php编程 >

PHP 分页类,可以集成到框架内

时间:2014-07-22 14:51来源: 作者: 点击:
分享到:
p包含 : 首页 上一页1 2 3 4 5 .....下一页 尾页/p

包含 : 首页  上一页1 2 3 4 5 .....下一页 尾页


<?php
class page{
	
	public $page; //当前页
	public $pagenum;  // 页数
	public $pagesize;  // 每页显示条数
	public function __construct($count, $pagesize){
		$this->pagenum = ceil($count/$pagesize);
		$this->pagesize = $pagesize;
		$this->page =(isset($_GET['p'])&&$_GET['p']>0) ? intval($_GET['p']) : 1;
	}
	/**
	 * 获得 url 后面GET传递的参数
	 */ 
	public function getUrl(){   
		$url = 'index.php?'.http_build_query($_GET);
		$url = preg_replace('/[?,&]p=(\w)+/','',$url);
		$url .= (strpos($url,"?") === false) ? '?' : '&';
		return $url;
	}
	/**
	 * 获得分页HTML
	 */
	public function getPage(){
		$url = $this->getUrl();
		$start = $this->page-5;
		$start=$start>0 ? $start : 1; 
		$end   = $start+9;
		$end = $end<$this->pagenum ? $end : $this->pagenum;
		$pagestr = '';
		if($this->page>5){
			$pagestr = "<a href=".$url."p=1".">首页</a> ";
		}
		if($this->page!=1){
			$pagestr.= "<a href=".$url."p=".($this->page-1).">上一页</a>";
		}
		
		for($i=$start;$i<=$end;$i++){
			$pagestr.= "<a href=".$url."p=".$i.">".$i."</a>  ";						
		}
		if($this->page!=$this->pagenum){
			$pagestr.="<a href=".$url."p=".($this->page+1).">下一页</a>";
			
		}
		if($this->page+5<$this->pagenum){
			$pagestr.="<a href=".$url."p=".$this->pagenum.">尾页</a> ";
		}
		return $pagestr;	
	}
	
}
// 测试代码
$page = new page(100,10);
$str=$page->getPage();
echo $str;


?>
精彩图集

赞助商链接