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 相关文章推荐
文章推荐系统(三)
Oct 09 PHP
PHP学习 运算符与运算符优先级
Jun 15 PHP
php smarty的预保留变量总结
Dec 04 PHP
php性能优化分析工具XDebug 大型网站调试工具
May 22 PHP
php获取汉字首字母的函数
Nov 07 PHP
不使用php api函数实现数组的交换排序示例
Apr 13 PHP
ThinkPHP3.1新特性之命名范围的使用
Jun 19 PHP
ThinkPHP3.1新特性之多数据库操作更加完善
Jun 19 PHP
PHP缓存机制Output Control详解
Jul 14 PHP
PHP里8个鲜为人知的安全函数分析
Dec 09 PHP
php定义参数数量可变的函数用法实例
Mar 16 PHP
PHP实现加密文本文件并限制特定页面的存取的效果
Oct 21 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
input file获得文件根目录简单实现
2013/04/26 PHP
PHP GD库生成图像的几个函数总结
2014/11/19 PHP
syntaxhighlighter 使用方法
2007/07/02 Javascript
ExtJS 2.0实用简明教程 之获得ExtJS
2009/04/29 Javascript
javascript移出节点removeChild()使用介绍
2014/04/03 Javascript
JavaScript实现的图像模糊算法代码分享
2014/04/22 Javascript
node.js中的console.trace方法使用说明
2014/12/09 Javascript
js实现文字跟随鼠标移动而移动的方法
2015/02/28 Javascript
javascript实现移动端上的触屏拖拽功能
2016/03/04 Javascript
详细谈谈AngularJS的子级作用域问题
2016/09/05 Javascript
js中编码函数:escape,encodeURI与encodeURIComponent详解
2017/03/21 Javascript
layui弹出层效果实现代码
2017/05/19 Javascript
jQuery pjax 应用简单示例
2018/09/20 jQuery
iview实现select tree树形下拉框的示例代码
2018/12/21 Javascript
解决微信小程序中转换时间格式IOS不兼容的问题
2019/02/15 Javascript
JS查找孩子节点简单示例
2019/07/25 Javascript
Node.js API详解之 console模块用法详解
2020/05/12 Javascript
vue移动端弹起蒙层滑动禁止底部滑动操作
2020/07/22 Javascript
在vue中使用jsonp进行跨域请求接口操作
2020/10/29 Javascript
Python入门_浅谈数据结构的4种基本类型
2017/05/16 Python
Python实现两款计算器功能示例
2017/12/19 Python
python字符串中匹配数字的正则表达式
2019/07/03 Python
Python Socket多线程并发原理及实现
2020/12/11 Python
trivago美国:全球最大的酒店价格比较网站
2018/01/18 全球购物
英国领先的独立酒精饮料零售商:DrinkSupermarket
2021/01/13 全球购物
Currentbody德国站:健康与美容技术专家
2020/04/05 全球购物
优秀班集体获奖感言
2014/02/03 职场文书
体现团队精神的口号
2014/06/06 职场文书
基层干部群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
朋友聚会开场白
2015/06/01 职场文书
2016年法制宣传月活动总结
2016/04/01 职场文书
导游词之山西祁县乔家大院
2019/10/14 职场文书
教你用python实现12306余票查询
2021/06/30 Python
MySQL 主从复制数据不一致的解决方法
2022/03/18 MySQL
python APScheduler执行定时任务介绍
2022/04/19 Python
Win11 Beta 预览版 22621.575 和 22622.575更新补丁KB5016694发布(附更新内容大全)
2022/08/14 数码科技