php实现的漂亮分页方法


Posted in PHP onApril 17, 2014

分页页码显示算法

/**
  * 获取分页的HTML内容
  * @param integer $page 当前页
  * @param integer $pages 总页数
  * @param string $url 跳转url地址    最后的页数以 '&page=x' 追加在url后面
  * 
  * @return string HTML内容;
  */
 public static function getPageHtml($page, $pages, $url){
  //最多显示多少个页码
  $_pageNum = 5;
  //当前页面小于1 则为1
  $page = $page<1?1:$page;
  //当前页大于总页数 则为总页数
  $page = $page > $pages ? $pages : $page;
  //页数小当前页 则为当前页
  $pages = $pages < $page ? $page : $pages;  //计算开始页
  $_start = $page - floor($_pageNum/2);
  $_start = $_start<1 ? 1 : $_start;
  //计算结束页
  $_end = $page + floor($_pageNum/2);
  $_end = $_end>$pages? $pages : $_end;
  //当前显示的页码个数不够最大页码数,在进行左右调整
  $_curPageNum = $_end-$_start+1;
  //左调整
  if($_curPageNum<$_pageNum && $_start>1){  
   $_start = $_start - ($_pageNum-$_curPageNum);
   $_start = $_start<1 ? 1 : $_start;
   $_curPageNum = $_end-$_start+1;
  }
  //右边调整
  if($_curPageNum<$_pageNum && $_end<$pages){ 
   $_end = $_end + ($_pageNum-$_curPageNum);
   $_end = $_end>$pages? $pages : $_end;
  }
  $_pageHtml = '<ul class="pagination">';
  /*if($_start == 1){
   $_pageHtml .= '<li><a title="第一页">«</a></li>';
  }else{
   $_pageHtml .= '<li><a  title="第一页" href="'.$url.'&page=1">«</a></li>';
  }*/
  if($page>1){
   $_pageHtml .= '<li><a  title="上一页" href="'.$url.'&page='.($page-1).'">«</a></li>';
  }
  for ($i = $_start; $i <= $_end; $i++) {
   if($i == $page){
    $_pageHtml .= '<li class="active"><a>'.$i.'</a></li>';
   }else{
    $_pageHtml .= '<li><a href="'.$url.'&page='.$i.'">'.$i.'</a></li>';
   }
  }
  /*if($_end == $pages){
   $_pageHtml .= '<li><a title="最后一页">»</a></li>';
  }else{
   $_pageHtml .= '<li><a  title="最后一页" href="'.$url.'&page='.$pages.'">»</a></li>';
  }*/
  if($page<$_end){
   $_pageHtml .= '<li><a  title="下一页" href="'.$url.'&page='.($page+1).'">»</a></li>';
  }
  $_pageHtml .= '</ul>';
  echo $_pageHtml;
 }

php实现的漂亮分页方法

PHP 相关文章推荐
纯php打造的tab选项卡效果代码(不用js)
Dec 29 PHP
php fputcsv命令 写csv文件遇到的小问题(多维数组连接符)
May 24 PHP
使用cookie实现统计访问者登陆次数
Jun 08 PHP
浅析PHP程序防止ddos,dns,集群服务器攻击的解决办法
Jun 18 PHP
WampServer下安装多个版本的PHP、mysql、apache图文教程
Jan 07 PHP
yii数据库的查询方法
Dec 28 PHP
PHP加密技术的简单实现
Sep 04 PHP
php利用gd库为图片添加水印
Nov 09 PHP
centos下file_put_contents()无法写入文件的原因及解决方法
Apr 01 PHP
PHP实现微信对账单处理
Oct 01 PHP
Laravel框架基于ajax和layer.js实现无刷新删除功能示例
Jan 17 PHP
PHP生成随机码的思路与方法实例探索
Apr 11 PHP
codeigniter中测试通过的分页类示例
Apr 17 #PHP
php生成静态页面的简单示例
Apr 17 #PHP
php文件服务实现虚拟挂载其他目录示例
Apr 17 #PHP
php实现12306余票查询、价格查询示例
Apr 17 #PHP
PHP5.5在windows安装使用memcached服务端的方法
Apr 16 #PHP
纯PHP生成的一个树叶图片画图例子
Apr 16 #PHP
通过dbi使用perl连接mysql数据库的方法
Apr 16 #PHP
You might like
PHP开发中常用的字符串操作函数
2011/02/08 PHP
PHP基于GD库的缩略图生成代码(支持jpg,gif,png格式)
2014/06/19 PHP
php中rename函数用法分析
2014/11/15 PHP
php使用ob_flush不能每隔一秒输出原理分析
2015/06/02 PHP
详解PHP实现定时任务的五种方法
2016/07/25 PHP
中高级PHP程序员应该掌握哪些技术?
2016/09/23 PHP
php中array_slice和array_splice函数解析
2016/10/18 PHP
PHP设计模式之工厂模式实例总结
2017/09/01 PHP
Ajax+Jpgraph实现的动态折线图功能示例
2019/02/11 PHP
js 日期转换成中文格式的函数
2009/07/07 Javascript
jquery+json实现的搜索加分页效果
2010/03/31 Javascript
在网页中使用document.write时遭遇的奇怪问题
2010/08/24 Javascript
jquery $.fn $.fx是什么意思有什么用
2013/11/04 Javascript
Nodejs+express+html5 实现拖拽上传
2014/08/08 NodeJs
JavaScript中解析JSON数据的三种方法
2015/07/03 Javascript
jquery实现简单的全选和反选功能
2016/01/02 Javascript
AngularJS 作用域详解及示例代码
2016/08/17 Javascript
vue.js利用defineProperty实现数据的双向绑定
2017/04/28 Javascript
原生JS实现自定义下拉单选选择框功能
2018/10/12 Javascript
浅谈对于react-thunk中间件的简单理解
2019/05/01 Javascript
uni-app 组件里面获取元素宽高的实现
2019/12/27 Javascript
Python类的专用方法实例分析
2015/01/09 Python
Python常用的文件及文件路径、目录操作方法汇总介绍
2015/05/21 Python
Python实现豆瓣图片下载的方法
2015/05/25 Python
python使用matplotlib绘制折线图教程
2017/02/08 Python
Python实现插入排序和选择排序的方法
2019/05/12 Python
Python进程间通信Queue消息队列用法分析
2019/05/22 Python
python matplotlib工具栏源码探析二之添加、删除内置工具项的案例
2021/02/25 Python
10分钟理解CSS3 FlexBox弹性布局
2018/12/20 HTML / CSS
HTML5本地存储之Web Storage应用介绍
2013/01/06 HTML / CSS
巴西补充剂和维生素购物网站:Natue
2019/06/17 全球购物
Speedo速比涛德国官方网站:世界领先的泳装品牌
2019/08/26 全球购物
五年级数学教学反思
2014/02/11 职场文书
文明班级申报材料
2014/12/24 职场文书
督导岗位职责
2015/02/04 职场文书
2015教师个人师德工作总结
2015/10/23 职场文书