庆宇笔记 - 2015年3月
type: channel
link: http://qingyu.me/2015/03/
description: A Rose by Any Other Name.
items: 一个PHP分页类-支持URL普通模式和PATHINFO模式

一个PHP分页类-支持URL普通模式和PATHINFO模式
type: item
date: 2015-03-16T16:13:00+08:00
description: 分页实现是网站应用最常用的功能，需要注意的是，要和网站的url模式相一致，且不丢失其他GET参数。再次就是要可以配置你的分页主题。这里我整理了一个分页类，调用非常简单，demo如下：场景：写了一个微信精选的文摘，有分页功能，URL模式就是普通模式"?a=bc&page=2",若你的程序是PATHINTO模式的，实例化Page类时配置一下$urlmode=1就可以生成形如"./a/bc/page/2"的URL。分页类首要知道你的总数和每页的个数就可以了。话不多说，直接看代码加注释应用代码摘取：require './DMysqli.php';//数据库类 $dbconfig = array('hostname'=>SAE_MYSQL_HOST_M,'username'=>SAE_MYSQL_USER,'password'=>SAE_MYSQL_PASS,'database'=>SAE_MYSQL_DB,'hostport'=>SAE_MYSQL_PORT,'tablePrefix'=>'wx_'); $dmysqli = new DMysqli($dbconfig); header('Content-type: text/html; charset=utf-8'); require 'Util/page.class.php';//引入Page分页类 $sql = 'select count(*) from wx_article'; $count = $dmysqli->query($sql);//总数 $totalRow = intval(current($count[0])); $Page = new Page($totalRow,10);//实例化分页类：配置总数、每页个数 $sql = 'select * from wx_article ORDER BY posttime,id desc LIMIT $Page->firstRow'.','.'$Page->listRows';//取出当前页的数据，关键在sql语句的limit语法 $res = $dmysqli->query($sql); /* //分页语种自定义 $Page->setConfig('header','items'); $Page->setConfig('prev','Prev Page'); $Page->setConfig('next','Next Page'); $Page->setConfig('first','First Page'); $Page->setConfig('last','Last Page'); $Page->setConfig('theme',' %totalRow% %header% %nowPage%/%totalPage% Page %upPage% %downPage% %first% %prePage% %linkPage% %nextPage% %end%'); */ $show = $Page->show();//分页类可以生成分页字符串，然后赋值给变量，在模版里输出就好了！ include('template/index.html'); Page类源码如下：class Page { // 分页栏每页显示的页数 public $rollPage = 4; // 页数跳转时要带的参数 public $parameter; // 当url模式为PATHINFO时，此配置项有效 public $depr = '/'; // 分页URL地址 public $url = ''; // 默认列表每页显示行数 public $listRows = 20; // 起始行数 public $firstRow; // 分页总页面数 protected $totalPages; // 总行数 protected $totalRows; // 当前页数 protected $nowPage; // 分页的栏的总页数 protected $coolPages; // 分页显示定制 protected $config = array ( 'header' => '条', 'prev' => '上一页', 'next' => '下一页', 'first' => '第一页', 'last' => '最后一页', 'theme' => ' %totalRow% %header% %nowPage%/%totalPage% 页 %upPage% %downPage% %first% %prePage% %linkPage% %nextPage% %end%' ); // 默认分页变量名 protected $varPage; // url模式:0 普通…