Welcome 微信登录

首页 / 移动开发 / Android / 简单好用的PHP分页类

本文为大家分享了两段PHP分页类,很实用,供大家参考,具体内容如下
<?php class Page {private $total; //总记录private $pagesize;//每页显示多少条private $limit; //limitprivate $page; //当前页码private $pagenum;//总页码private $url; //地址private $bothnum;//两边保持数字分页的量 //构造方法初始化public function __construct($_total, $_pagesize) { $this->total = $_total ? $_total : 1; $this->pagesize = $_pagesize;$this->pagenum = ceil($this->total / $this->pagesize); $this->page = $this->setPage(); $this->limit = "LIMIT ".($this->page-1)*$this->pagesize.",$this->pagesize"; $this->url = $this->setUrl(); $this->bothnum = 2;} //拦截器private function __get($_key) { return $this->$_key;} //获取当前页码private function setPage() { if (!empty($_GET["page"])) {if ($_GET["page"] > 0) { if ($_GET["page"] > $this->pagenum) {return $this->pagenum; } else {return $_GET["page"]; }} else { return 1;} } else {return 1; }}//获取地址private function setUrl() { $_url = $_SERVER["REQUEST_URI"]; $_par = parse_url($_url); if (isset($_par["query"])) {parse_str($_par["query"],$_query);unset($_query["page"]);$_url = $_par["path"]."?".http_build_query($_query); } return $_url;}//数字目录private function pageList() { for ($i=$this->bothnum;$i>=1;$i--) { $_page = $this->page-$i; if ($_page < 1) continue;$_pagelist .= " <a href="".$this->url."&page=".$_page."">".$_page."</a> "; } $_pagelist .= " <span class="me">".$this->page."</span> "; for ($i=1;$i<=$this->bothnum;$i++) {$_page = $this->page+$i;if ($_page > $this->pagenum) break;$_pagelist .= " <a href="".$this->url."&page=".$_page."">".$_page."</a> "; } return $_pagelist;} //首页private function first() { if ($this->page > $this->bothnum+1) {return " <a href="".$this->url."">1</a> ..."; }} //上一页private function prev() { if ($this->page == 1) {return "<span class="disabled">上一页</span>"; } return " <a href="".$this->url."&page=".($this->page-1)."">上一页</a> ";} //下一页private function next() { if ($this->page == $this->pagenum) {return "<span class="disabled">下一页</span>"; } return " <a href="".$this->url."&page=".($this->page+1)."">下一页</a> ";} //尾页private function last() { if ($this->pagenum - $this->page > $this->bothnum) {return " ...<a href="".$this->url."&page=".$this->pagenum."">".$this->pagenum."</a> "; }} //分页信息public function showpage() { $_page .= $this->first(); $_page .= $this->pageList(); $_page .= $this->last(); $_page .= $this->prev(); $_page .= $this->next(); return $_page;} }?>
分页样式如下图所示:


使用说明:

<?php $_page = new Page($_total,$_pagesize); //其中 $_total 是数据集的总条数,$_pagesize 是每页显示的数量.?>
第二个分页类:

<?php/** * page.class.php 分页类 * 日期:2015-04-05 * http://aowana.sinaapp.com */class page{public static $url;public static $page;public static $total;public static $size;public static $number;public static $max; public static $action = array("previous", "number", "next"); public static function show($url, $page, $total, $size=10, $number=11){self::$url = $url;self::$page = $page;self::$total = $total;self::$size = $size;self::$number = $number;self::$max = ceil($total / $size); $str = "";foreach (self::$action as $name)$str .= self::$name();return $str;} public static function first(){if (self::$page > 2){$url = self::url(1);return "<li id="pbfirst"><a href="{$url}" title="首页">首页</a></li>";}} public static function previous(){if (self::$page > 1){$url = self::url(self::$page - 1);return "<li id="pbprevious"><a href="{$url}" title="上一页">上一页</a></li>";}} public static function number(){$str = "";$f = self::$number % 2 ? (self::$number - 1) / 2 : self::$number / 2;$s = self::$page - $f;$e = self::$page + $f; if (self::$page < ($f + 1)){$s = 1;$e = self::$number;$e = $e > self::$max ? self::$max : $e;} if (self::$page > (self::$max - $f)){$s = self::$max - self::$number;$s = $s < 1 ? 1 : $s;$e = self::$max;} for ($i=$s; $i<=$e; $i++){$url = self::url($i);if ($i == self::$page)$str .= "<li><strong>{$i}</strong></li>";else$str .= "<li><a href="{$url}" title="第{$i}页">{$i}</a></li>";}return $str;} public static function next(){if (self::$page < self::$max){$url = self::url(self::$page + 1);return "<li id="pbnext"><a href="{$url}" title="下一页">下一页</a></li>";}} public static function end(){if ((self::$max - self::$page) > 1){$url = self::url(self::$max);return "<li id="pbend"><a href="{$url}" title="末页">末页</a></li>";}} public static function url($page){return str_replace("{page}", $page, self::$url);}}
以上就是本文的全部内容,希望对大家学习php程序设计有所帮助。