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程序中的常见漏洞进行攻击(上)
Oct 09 PHP
DedeCms模板安装/制作概述
Mar 11 PHP
浅析PKI加密解密 OpenSSL
Jul 01 PHP
PHP将两个关联数组合并函数提高函数效率
Mar 18 PHP
yii实现CheckBox复选框在同一行显示的方法
Dec 03 PHP
PHP ajax 异步执行不等待执行结果的处理方法
May 27 PHP
分享10段PHP常用代码
Nov 11 PHP
php验证码生成器
May 24 PHP
ThinkPHP实现转换数据库查询结果数据到对应类型的方法
Nov 16 PHP
php 中phar包的使用教程详解
Oct 26 PHP
PHP7新功能总结
Apr 14 PHP
PHP中->和=>的意思
Mar 31 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获取mysql版本的几种方法小结
2008/03/25 PHP
php 操作excel文件的方法小结
2009/12/31 PHP
php Rename 更改文件、文件夹名称
2011/05/24 PHP
分享php代码将360浏览器导出的favdb的sqlite数据库文件转换为html
2015/12/09 PHP
关于PHP虚拟主机概念及如何选择稳定的PHP虚拟主机
2018/11/20 PHP
jquery select选中的一个小问题
2009/10/11 Javascript
关于javascript DOM事件模型的两件事
2010/07/22 Javascript
jquery下动态显示jqGrid以及jqGrid的属性设置容易出现问题的解决方法
2010/10/22 Javascript
JavaScript传递变量: 值传递?引用传递?
2011/02/22 Javascript
零基础搭建Node.js、Express、Ejs、Mongodb服务器及应用开发入门
2014/12/20 Javascript
JS实现至少包含字母、大小写数字、字符的密码等级的两种方法
2015/02/03 Javascript
Javascript实现鼠标右键特色菜单
2015/08/04 Javascript
Javascript 引擎工作机制详解
2016/11/30 Javascript
Angular ng-repeat指令实例以及扩展部分
2016/12/26 Javascript
Vue.js展示AJAX数据简单示例讲解
2017/03/29 Javascript
微信小程序使用navigateTo数据传递的实例
2017/09/26 Javascript
JS计算两个时间相差分钟数的方法示例
2018/01/10 Javascript
layui表格内放置图片,并点击放大的实例
2019/09/10 Javascript
[54:56]DOTA2上海特级锦标赛主赛事日 - 5 总决赛Liquid VS Secret第三局
2016/03/06 DOTA
Python进程间通信用法实例
2015/06/04 Python
简单谈谈Python中的反转字符串问题
2016/10/24 Python
Python抓取框架Scrapy爬虫入门:页面提取
2017/12/01 Python
tensorflow学习笔记之mnist的卷积神经网络实例
2018/04/15 Python
python遍历一个目录,输出所有的文件名的实例
2018/04/23 Python
Sanic框架异常处理与中间件操作实例分析
2018/07/16 Python
Pycharm更换python解释器的方法
2018/10/29 Python
Python企业编码生成系统之主程序模块设计详解
2019/07/26 Python
完美解决keras 读取多个hdf5文件进行训练的问题
2020/07/01 Python
python爬虫判断招聘信息是否存在的实例代码
2020/11/20 Python
架构师岗位职责
2013/11/18 职场文书
护士实习生自我鉴定范文
2013/12/10 职场文书
公司前台辞职报告
2014/01/19 职场文书
一份恶作剧的检讨书
2014/09/13 职场文书
酒店前台接待岗位职责
2015/04/02 职场文书
mysql数据库如何转移到oracle
2022/12/24 MySQL
Python TypeError: ‘float‘ object is not subscriptable错误解决
2022/12/24 Python