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
PHP写杨辉三角实例代码
Jul 17 PHP
php可生成缩略图的文件上传类实例
Dec 17 PHP
php的闭包(Closure)匿名函数详解
Feb 22 PHP
php提交post数组参数实例分析
Dec 17 PHP
PHP程序中的文件锁、互斥锁、读写锁使用技巧解析
Mar 21 PHP
Zend Studio使用技巧两则
Apr 01 PHP
php使用curl并发减少后端访问时间的方法分析
May 12 PHP
Yii2中hasOne、hasMany及多对多关联查询的用法详解
Feb 15 PHP
PHP递归实现文件夹的复制、删除、查看大小操作示例
Aug 11 PHP
PHP实现简单计算器小程序
Aug 28 PHP
PHP date_default_timezone_set()设置时区操作实例分析
May 16 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原创论坛
2006/10/09 PHP
php 无限级数据JSON格式及JS解析
2010/07/17 PHP
检测png图片是否完整的php代码
2010/09/06 PHP
php在线代理转向代码
2012/05/05 PHP
php获取本周星期一具体日期的方法
2015/04/20 PHP
3种php生成唯一id的方法
2015/11/23 PHP
Laravel登录失败次数限制的实现方法
2020/08/26 PHP
JavaScript 原型学习总结
2010/10/29 Javascript
BootStrap创建响应式导航条实例代码
2016/05/31 Javascript
JavaScript实现Java中Map容器的方法
2016/10/09 Javascript
微信小程序购物商城系统开发系列-工具篇的介绍
2016/11/21 Javascript
Angular2 PrimeNG分页模块学习
2017/01/14 Javascript
lhgcalendar时间插件限制只能选择三个月的实现方法
2017/07/03 Javascript
详解Vue.js v-for不支持IE9的解决方法
2018/12/29 Javascript
如何为你的JavaScript代码日志着色详解
2019/04/08 Javascript
JS实现滑动拼图验证功能完整示例
2020/03/29 Javascript
[04:39]显微镜下的DOTA2第十三期—Pis卡尔个人秀
2014/04/04 DOTA
[03:09]2014DOTA2国际邀请赛 赛场上的美丽风景线 中国Coser也爱DOTA2
2014/07/20 DOTA
[23:18]Spirit vs Liquid Supermajor小组赛A组 BO3 第二场 6.2
2018/06/03 DOTA
pycharm 使用心得(一)安装和首次使用
2014/06/05 Python
python利用urllib实现爬取京东网站商品图片的爬虫实例
2017/08/24 Python
一款纯css3实现的非常实用的鼠标悬停特效演示
2014/11/05 HTML / CSS
HTML5 3D书本翻页动画的实现示例
2019/08/28 HTML / CSS
孤独星球出版物:Lonely Planet Publications
2018/03/17 全球购物
Square Off美国/加拿大:世界上最聪明的国际象棋棋盘
2018/12/06 全球购物
洛佩桑酒店官方网站:Lopesan Hotels
2019/04/15 全球购物
NHL官方在线商店:Shop.NHL.com
2020/05/01 全球购物
广告学专业毕业生自荐信
2013/09/24 职场文书
制冷与电控专业应届生求职信
2013/11/11 职场文书
商务英语专业求职信范文
2014/01/28 职场文书
物流毕业生个人的自我评价
2014/02/13 职场文书
2014年中班元旦活动方案
2014/02/14 职场文书
关于热爱祖国的演讲稿
2014/05/04 职场文书
亮剑观后感300字
2015/06/05 职场文书
虎兄虎弟观后感
2015/06/12 职场文书
优秀范文:《但愿人长久》教学反思3篇
2019/10/24 职场文书