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下对字符串的递增运算代码
Aug 21 PHP
php和mysql中uft-8中文编码乱码的几种解决办法
Apr 19 PHP
PHP最常用的2种设计模式工厂模式和单例模式介绍
Aug 14 PHP
PHP json格式和js json格式 js跨域调用实现代码
Sep 08 PHP
PHP5中Cookie与 Session使用详解
Apr 30 PHP
分享下PHP register_globals 值为on与off的理解
Sep 26 PHP
php实现以只读方式打开文件的方法
Mar 16 PHP
PHP 数据结构队列(SplQueue)和优先队列(SplPriorityQueue)简单使用实例
May 12 PHP
PHP的伪随机数与真随机数详解
May 27 PHP
PHP实现生成模糊图片的方法示例
Dec 21 PHP
php接口实现拖拽排序功能
Apr 23 PHP
Laravel框架集成UEditor编辑器的方法图文与实例详解
Apr 17 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 UBB 解析实现代码
2011/11/27 PHP
php中mysql连接方式PDO使用详解
2015/02/25 PHP
Ubuntu下安装PHP的mongodb扩展操作命令
2015/07/04 PHP
php实现多站点共用session实现单点登录的方法详解
2019/09/18 PHP
gearman管理工具GearmanManager的安装与php使用方法示例
2020/02/27 PHP
javascript 嵌套的函数(作用域链)
2010/03/15 Javascript
jQuery UI 实现email输入提示实例
2013/08/15 Javascript
jQuery提交多个表单的小技巧
2014/07/27 Javascript
JavaScript+html5 canvas实现本地截图教程
2020/04/16 Javascript
12个非常实用的JavaScript小技巧【推荐】
2016/05/18 Javascript
原生JS实现匀速图片轮播动画
2016/10/18 Javascript
javascript轮播图算法
2016/10/21 Javascript
js实现右键自定义菜单
2016/12/03 Javascript
EasyUI实现下拉框多选功能
2017/11/07 Javascript
使用Javascript简单计算器
2018/11/17 Javascript
Bootstarp在pycharm中的安装及简单的使用方法
2019/04/19 Javascript
浅析VUE防抖与节流
2020/11/24 Vue.js
js定时器出现第一次延迟的原因及解决方法
2021/01/04 Javascript
python中遍历文件的3个方法
2014/09/02 Python
Python使用matplotlib绘图无法显示中文问题的解决方法
2018/03/14 Python
python 3调用百度OCR API实现剪贴板文字识别
2018/09/04 Python
pytorch 在sequential中使用view来reshape的例子
2019/08/20 Python
python3爬取torrent种子链接实例
2020/01/16 Python
python 使用递归的方式实现语义图片分割功能
2020/07/16 Python
HTML5实现自带进度条和滑块滑杆效果
2018/04/17 HTML / CSS
eDreams意大利:南欧领先的在线旅行社
2018/11/23 全球购物
STP协议的主要用途是什么?为什么要用STP
2012/12/20 面试题
实习教师自我鉴定
2013/12/09 职场文书
工厂厂长的职责
2013/12/12 职场文书
力学专业求职信
2014/07/23 职场文书
2014年城管工作总结
2014/11/20 职场文书
委托书格式范文
2015/01/28 职场文书
三好学生个人总结
2015/02/15 职场文书
电影雨中的树观后感
2015/06/15 职场文书
2015年公司国庆放假通知
2015/07/30 职场文书
Hive HQL支持2种查询语句风格
2022/06/25 数据库