好用的PHP分页类
- <?php
- class Page {
- private $total; //总记录
- private $pagesize; //每页显示多少条
- private $limit; //limit
- private $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分页类的更多相关文章
- php实现的分页类
php分页类文件: <?php /** file: page.class.php 完美分页类 Page */ class Page { private $total; //数据表中总记录数 pr ...
- asp.net的快捷实用分页类
KeleyiPager分页类,可以于对列表页进行分页浏览,代码是从HoverTreeCMS项目中COPY的,感觉很不错,使用简单方便,但是功能强大. 在线体验效果:http://cms.hovertr ...
- php分页类
1.需求 学会php分页类的使用 2.参考例子 CI的分页类 3.代码部分 <?php class pagination{ public $pagesize=20; public $pagein ...
- PHPCMS V9 分页类的修改教程
首先,打开 phpcms\libs\functions\global.func.php 这个文件,找到文件第622行的分页函数,复制一下,粘贴到默认分页函数的下面,重新命名后保存.(笔者在此命名为:p ...
- php 简单分页类
/** file: page.class.php 完美分页类 Page */ class Page { private $total; //数据表中总记录数 privat ...
- PHP简单漂亮的分页类
本文介绍一款原生的PHP分页类,分页样式有点类似bootstrap. <?php /* * ********************************************* * @类名 ...
- ThinkPHP 分页类的使用及退出功能的实现
/* ThinkPHP设置编码统一: 一.数据库设置为utf8_bin 二.HTML页面设置charset=utf-8,而且检查文档编码格式是否是utf-8.phpDesigner8设置方式为“文件- ...
- php部分---一个分页类、用法
1.分页类 <?php /** file: page.class.php 完美分页类 Page */ class Page { private $total; //数据表中总记录数 privat ...
- DedeCMS织梦动态分页类,datalist标签使用实例
<?php require_once(dirname(__FILE__)."/include/common.inc.php");//载入基础文件 require_once(D ...
- webpy分页类 + 上传类
webpy没有分页类.按照php的思路.自己编了一个.数据库用的是sqlite. class Page(object): '''分页类''' def __init__(self,page_size,d ...
随机推荐
- 51nod 1170 1770 数数字(动态规划)
解题思路:看到题后,直接想到分成两种情况: ①:a*b >9 这里又分成两种 1. n==1 a*b 直接是一个两位数 求得十位和个位(这里十位和个位不可能相等) 然后如果等于d 则结果=1 2 ...
- FreeMarker template error!
部署项目后发现以下“FreeMarker template error!”的问题,google.baidu猛一顿搜索无果后开始认真分析异常信息. FreeMarker template error! ...
- WPF 窗口在右下角出现,识别分辨率
直接上代码. Point brp = SystemParameters.WorkArea.BottomRight;//当前桌面右下角的位置
- HNU 12847 Dwarf Tower(最短路+队列优化)
题目链接:http://acm.hnu.cn/online/?action=problem&type=show&id=12847 解题报告:有n样物品,编号从1到n第i样物品可以通过金 ...
- CSUST 1503 ZZ买衣服
解题报告:题目大意是输入两个数N和M,N表示一开始输入N个字符串,并且保存起来,然后再输入M个字符串,并且在输入M个字符串的同时要求判断每次输入的字符串是否已经存在,要注意的是后面输入的M个字符串每次 ...
- [Effective JavaScript 笔记]第43条:使用Object的直接实例构造轻量级的字典
js对象的核心是一个字符串属性名与属性值的映射表.使用对象实现字典易如反掌,字典是可变长的字符串与值的映射集合. for...in js提供了枚举一个对象属性名的利器--for...in循环. var ...
- Ubuntu 下 LAMP 的配置文件路径 转:
配置文件路径: 1>apache 的配置文件路径 /etc/apache2/apache2.conf 2>apache 网站字符编码配置路径 /etc/apache2/conf.d/c ...
- Linux中启动和停止jar包的运行
脚本一: startTest.sh内容如下: #!/bin/sh java -jar Test.jar & #注意:必须有&让其后台执行,否则没有pid生成 echo $! ...
- Java和C#运行速度对比:Java比C#快约3倍
测试条件: Java版本: Java 8, .NET版本:v4.0, Release模式,针对x86平台优化 单线程模式. 测试1:(测试1的代码摘自http://blog.csdn.net/houj ...
- 用php实现百度网盘图片直链的代码分享
第一种代码:代码量较少通过正则表达式获取百度网盘的文件真实地址,来实现直链的效果 将下面的代码保存为downbd.php 复制代码代码如下: <?php $canshu=$_SERVER[&qu ...