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 Zip解压 文件在线解压缩的函数代码
May 26 PHP
使用NetBeans + Xdebug调试PHP程序的方法
Apr 12 PHP
php获得url参数中具有&amp;的值的方法
Mar 05 PHP
PHP中让curl支持sock5的代码实例
Jan 21 PHP
PHP中异常处理的一些方法整理
Jul 03 PHP
微信公众号支付之坑:调用支付jsapi缺少参数 timeStamp等错误解决方法
Jan 12 PHP
Yii2实现同时搜索多个字段的方法
Aug 10 PHP
PHP中函数gzuncompress无法使用的解决方法
Mar 02 PHP
[原创]php token使用与验证示例【测试可用】
Aug 30 PHP
php-fpm添加service服务的例子
Apr 27 PHP
PHP下用Swoole实现Actor并发模型的方法
Jun 12 PHP
基于PHP实现堆排序原理及实例详解
Jun 19 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正则preg_replace_callback函数用法实例
2015/06/01 PHP
php脚本守护进程原理与实现方法详解
2017/07/20 PHP
IE DOM实现存在的部分问题及解决方法
2009/07/25 Javascript
javascript 混合的构造函数和原型方式,动态原型方式
2009/12/07 Javascript
select 控制网页内容隐藏于显示的实现代码
2010/05/25 Javascript
基于Jquery与WebMethod投票功能实现代码
2011/01/19 Javascript
使用JS 清空File控件的路径值
2013/07/08 Javascript
轻松创建nodejs服务器(9):实现非阻塞操作
2014/12/18 NodeJs
EasyUI实现二级页面的内容勾选的方法
2015/03/01 Javascript
JS实现的论坛Ajax打分效果完整实例
2015/10/31 Javascript
bootstrap侧边栏圆点导航
2017/01/11 Javascript
基于bootstrap实现bootstrap中文网巨幕效果
2017/05/02 Javascript
详解angularjs的数组传参方式的简单实现
2017/07/28 Javascript
Vuejs实现购物车功能
2017/11/05 Javascript
使用socket.io制做简易WEB聊天室
2018/01/02 Javascript
对mac下nodejs 更新到最新版本的最新方法(推荐)
2018/05/17 NodeJs
nodejs实现范围请求的实现代码
2018/10/12 NodeJs
JS根据json数组多个字段排序及json数组常用操作
2019/06/06 Javascript
浅谈JS中几种轻松处理'this'指向方式
2019/09/16 Javascript
JS控制GIF图片的停止与显示
2019/10/24 Javascript
Node.js API详解之 string_decoder用法实例分析
2020/04/29 Javascript
Vue双向绑定实现原理与方法详解
2020/05/07 Javascript
JavaScript交换变量的常用方法小结【4种方法】
2020/05/07 Javascript
微信小程序实现点赞业务
2021/02/10 Javascript
CentOS中升级Python版本的方法详解
2017/07/10 Python
python实时获取外部程序输出结果的方法
2019/01/12 Python
Python实现队列的方法示例小结【数组,链表】
2020/02/22 Python
意大利奢侈品网站:Italist
2016/08/23 全球购物
仓库主管岗位职责
2014/03/02 职场文书
房屋买卖协议书
2014/04/10 职场文书
食品安全承诺书
2014/05/22 职场文书
师德先进个人事迹材料
2014/12/19 职场文书
党的群众路线教育实践活动先进个人材料
2014/12/24 职场文书
大学生英文求职信范文
2015/03/19 职场文书
小组组名及励志口号
2015/12/24 职场文书
如何在centos上使用yum安装rabbitmq-server
2021/03/31 Servers