php 分页类(3)
<?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() {
$pagelist = '';
$_page = '';
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 = '';
$_page .= $this->first();
$_page .= $this->pageList();
$_page .= $this->last();
$_page .= $this->prev();
$_page .= $this->next();
return $_page;
}
}
?>
php 分页类(3)的更多相关文章
- 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 ...
随机推荐
- [ An Ac a Day ^_^ ] POJ 3254 Corn Fields 状压dp
题意: 有一块n*m的土地 0代表不肥沃不可以放牛 1代表肥沃可以放牛 且相邻的草地不能同时放牛 问最多有多少种放牛的方法并对1e8取模 思路: 典型的状压dp 能状态压缩 能状态转移 能状态压缩的题 ...
- 一个快速、高效的Levenshtein算法实现——代码实现
在网上看到一篇博客讲解Levenshtein的计算,大部分内容都挺好的,只是在一些细节上不够好,看了很长时间才明白.我对其中的算法描述做了一个简单的修改.原文的链接是:一个快速.高效的Levensht ...
- 基于PHP——简单的WSDL的创建(WSDL篇)
1.建立WSDL文件 建立WSDL的工具很多,eclipse.zendstudio.vs都可以,我个人建议自己写,熟悉结构,另外自动工具对xml schame类型支持在类型中可能会报错. 下 ...
- PHP Cookei记录用户历史浏览信息的代码
[基础]Cookie常用方法:$_COOKIE['RecordLuHuiDUDU'] 得到Cookiesetcookie('RecordLuHuiDUDU',",time()-3600*24 ...
- hdu5514 非2的次幂容斥原理
/* 1 126 223092870 210 330 390 462 510 546 570 690 714 770 798 858 910 966 1122 1155 1190 1254 1326 ...
- mysql索引类型-形式-使用时机-不足之处--注意事项
一.索引的类型 1.普通索引 增加 create index index_name on table(colume(length)); 例子:cre ...
- token 小记
最近了解下基于 Token 的身份验证,跟大伙分享下.很多大型网站也都在用,比如 Facebook,Twitter,Google+,Github 等等,比起传统的身份验证方法,Token 扩展性更强, ...
- 如何优化 App 的启动时间
http://www.cocoachina.com/ios/20161102/17931.html App 运行理论 main() 执行前发生的事 Mach-O 格式 虚拟内存基础 Mach-O 二进 ...
- Django开发环境配置
Eclipse 首先需要去Eclipse官网下载:http://www.eclipse.org/,Eclipse需要JDK支持,如果Eclipse无法正常运行,请到Java官网下载JDK安装:ht ...
- Hadoop-2.6.0安装文档
前段时间在dataguru上报了一个hadoop的培训班,希望能够帮助自己更快的了解.掌握并且熟悉hadoop的开发和原理. 上一期的作业是要自己搭建一个hadoop的环境,并能运行mapreduce ...