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 上传文件类型判断函数(避免上传漏洞 )
Jun 08 PHP
php中关于codeigniter的xmlrpc的类在进行数据交换时的类型问题
Jul 03 PHP
php比较多维数组中值的大小排序实现代码
Sep 08 PHP
如何取得中文字符串中出现次数最多的子串
Aug 08 PHP
curl实现站外采集的方法和技巧
Jan 31 PHP
php函数连续调用实例分析
Jul 30 PHP
PHP内核探索:哈希表碰撞攻击原理
Jul 31 PHP
php如何实现只替换一次或N次
Oct 29 PHP
php中__toString()方法用法示例
Dec 07 PHP
利用PHP_XLSXWriter代替PHPExcel的方法示例
Jul 16 PHP
PHP基于递归实现的约瑟夫环算法示例
Aug 27 PHP
Laravel + Elasticsearch 实现中文搜索的方法
Feb 02 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 socke 向指定页面提交数据
2008/07/23 PHP
Apache服务器下防止图片盗链的办法
2015/07/06 PHP
thinkphp5框架扩展redis类方法示例
2019/05/06 PHP
php与js的区别是什么
2013/08/05 Javascript
IE8中使用javascript动态加载CSS的解决方法
2014/06/17 Javascript
JS中完美兼容各大浏览器的scrolltop方法
2015/04/17 Javascript
详解JavaScript函数对象
2015/11/15 Javascript
基于bootstrap的文件上传控件bootstrap fileinput
2016/12/23 Javascript
Angular实现下拉框模糊查询功能示例
2018/01/03 Javascript
在 React、Vue项目中使用SVG的方法
2018/02/09 Javascript
node.js博客项目开发手记
2018/03/16 Javascript
Vue实现导出excel表格功能
2018/03/30 Javascript
15 分钟掌握vue-next响应式原理
2019/10/13 Javascript
js 计数排序的实现示例(升级版)
2020/01/12 Javascript
vue实现用户长时间不操作自动退出登录功能的实现代码
2020/07/23 Javascript
vue props default Array或是Object的正确写法说明
2020/07/30 Javascript
js实现车辆管理系统
2020/08/26 Javascript
Ant Design moment对象和字符串之间的相互转化教程
2020/10/27 Javascript
JS实现超级好看的鼠标小尾巴特效
2020/12/01 Javascript
vue实现两个区域滚动条同步滚动
2020/12/13 Vue.js
[53:52]OG vs EG 2018国际邀请赛淘汰赛BO3 第二场 8.23
2018/08/24 DOTA
[42:32]完美世界DOTA2联赛PWL S2 LBZS vs FTD.C 第二场 11.27
2020/12/01 DOTA
Python3基础之条件与循环控制实例解析
2014/08/13 Python
python实现备份目录的方法
2015/08/03 Python
python使用paramiko实现远程拷贝文件的方法
2016/04/18 Python
示例详解Python3 or Python2 两者之间的差异
2018/08/23 Python
Python实现字符型图片验证码识别完整过程详解
2019/05/10 Python
Python中的X[:,0]、X[:,1]、X[:,:,0]、X[:,:,1]、X[:,m:n]和X[:,:,m:n]
2020/02/13 Python
python之生成多层json结构的实现
2020/02/27 Python
详解CSS 3 中的 calc() 方法
2018/01/12 HTML / CSS
介绍一下Make? 为什么使用make
2016/07/31 面试题
竞聘上岗演讲稿
2014/05/16 职场文书
消防工作实施方案
2014/06/09 职场文书
询价采购方案
2014/06/09 职场文书
爱心募捐感谢信
2015/01/22 职场文书
科普 | 业余无线电知识-波段篇
2022/02/18 无线电