php实现分页工具类分享
2015-01-24信息快讯网
本文分享一个php实现的分页工具类,代码内有注释,大家参考使用吧
代码:
/**
* 把中间的看成一个可以滑动的固定长度的尺子
*
* 把$this->_totalShowPages 当成一个可以滑动的固定长度尺子,
* 然后$this->_totalPages就是一个给定长度的木块,尺子在这个
* 木块上滑动。情况两种:
* 1. 尺子长度大于木块长度,那么就直接输出所有的页码;
* 2. 尺子长度小于木块长度,那么就只用找到输出这个尺子长度页
* 数的起始点――$start, $end;
* @Access protected
* @Return void
* @Exception none
*/
protected function _getShowPageNumber()
{
$pageHtml = '';
//找到$start点
if($this->_curPage - 2 > 1) {
$start = $this->_curPage - 2;
} else {
$start = 1;
}
//找到$end 点
$end = $start + $this->_totalShowPages;
if($end >= $this->_totalPages) {
$end = $this->_totalPages;
$start = $end - $this->_totalShowPages; //保证页面显示的长度为$this->_totalShowPages
}
if($start != 1) {
$pageHtml .= $this->_getPageHtml(1);
$preMore = $this->_curPage - $this->_totalShowPages;
if($preMore < 1) {
$preMore = 1;
}
$pageHtml .= $this->_getMorePageHtml($preMore);
}
for($page = $start; $page < $end; $page ++) {
$pageHtml .= $this->_getPageHtml($page);
}
if($end != $this->_totalPages) {
$pageHtml .= $this->_getMorePageHtml($end);
}
$pageHtml .= $this->_getNormalPageHtml($this->_totalPages);
return $pageHtml;
}
第一种老想法的代码实现:
/**
* 一步步的来
*
* @desc
*
* @Access protected
* @Return void
* @Exception none
*/
protected function _getShowPageNumberTwo()
{
if($this->_curPage < $this->_totalShowPages) {
for($page = 1; $page < $this->_totalShowPages; $page ++) {
$pageHtml .= $this->_getPageHtml($page);
}
$pageHtml .= $this->_getMorePageHtml($this->_totalShowPages);
$pageHtml .= $this->_getNormalPageHtml($this->_totalPages);
} else {
$pageHtml .= $this->_getNormalPageHtml(1);
if($this->_curPage == $this->_totalShowPages) {
$pageHtml .= $this->_getMorePageHtml(1);
} else {
$pageHtml .= $this->_getMorePageHtml($this->_curPage - $this->_totalShowPages);
}
if($this->_curPage + $this->_totalShowPages >= $this->_totalPages) {
for($page = $this->_totalPages - $this->_totalShowPages; $page < = $this->_totalPages; $page ++) {
$pageHtml .= $this->_getPageHtml($page);
}
} else {
$start = $this->_curPage - 2;
$end = $this->_curPage + $this->_totalShowPages - 2;
for($page = $start; $page < $end; $page ++) {
$pageHtml .= $this->_getPageHtml($page);
}
$pageHtml .= $this->_getMorePageHtml($this->_curPage + $this->_totalShowPages - 2);
$pageHtml .= $this->_getNormalPageHtml($this->_totalPages);
}
}
return $pageHtml;
}
ThinkPHP中I(),U(),$this->post()等函数用法
php中ob_get_length缓冲与获取缓冲长度实例
什么情况下可以不写PHP的闭合标签“?>”
ThinkPHP采用<volist>实现三级循环代码实例
PHP中遇到BOM、<feff>编码导致json_decode函数无法解析问题
php使用GeoIP库实例
ThinkPHP采用GET方式获取中文参数查询无结果的解决方法
ThinkPHP2.0读取MSSQL提示Incorrect syntax near the keyword 'AS'的解决方法
PHP错误Parse error: syntax error, unexpected end of file in test.php on line 12解决方法
Yii2使用小技巧之通过 Composer 添加 FontAwesome 字体资源
浅析application/x-www-form-urlencoded和multipart/form-data的区别
ThinkPHP之getField详解
php数组合并array_merge()函数使用注意事项
ThinkPHP的Widget扩展实例
ThinkPHP CURD方法之data方法详解
ThinkPHP CURD方法之page方法详解
ThinkPHP使用心得分享-分页类Page的用法
php权重计算方法代码分享
codeigniter框架批量插入数据
PHP面向对象之旅:深入理解static变量与方法
解决file_get_contents无法请求https连接的方法
PHP PDOStatement:bindParam插入数据错误问题分析
php file_get_contents抓取Gzip网页乱码的三种解决方法
PHP中ob_start函数的使用说明
PHP imagegrabscreen和imagegrabwindow(截取网站缩略图)的实例代码
简单实用的.net DataTable导出Execl
php session_start()出错原因分析及解决方法
PHP的构造方法,析构方法和this关键字详细介绍
php MessagePack介绍
PHP中func_get_args(),func_get_arg(),func_num_args()的区别
深入探讨"<br />"和 "\r\n" 两者有什么区别??
PHP中::、->、self、$this几种操作符的区别介绍
仿Aspnetpager的一个PHP分页类代码 附源码下载
PHP 中关于ord($str)>0x80的详细说明