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+java实现自动新闻滚动窗口
Oct 09 PHP
PHP配置文件中最常用四个ini函数
Mar 19 PHP
phpMyAdmin2.11.6安装配置方法
Aug 24 PHP
深入探讨PHP中的内存管理问题
Aug 31 PHP
php图片加水印原理(超简单的实例代码)
Jan 18 PHP
php实现保存submit内容之后禁止刷新
Mar 19 PHP
PHP基于php_imagick_st-Q8.dll实现JPG合成GIF图片的方法
Jul 11 PHP
学习php设计模式 php实现抽象工厂模式
Dec 07 PHP
WordPress主题制作中自定义头部的相关PHP函数解析
Jan 08 PHP
PHP页面间传递值和保持值的方法
Aug 24 PHP
PHP SESSION机制的理解与实例
Mar 22 PHP
Laravel实现搜索的时候分页并携带参数
Oct 15 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中error_log()函数的使用方法
2015/01/20 PHP
C# WinForm中实现快捷键自定义设置实例
2015/01/23 PHP
php验证码生成器
2017/05/24 PHP
通过正则格式化url查询字符串实现代码
2012/12/28 Javascript
JS实现淘宝幻灯片效果的实现方法
2013/03/22 Javascript
导航跟随滚动条置顶移动示例代码
2013/09/11 Javascript
asm.js使用示例代码
2013/11/28 Javascript
ExtJS判断IE浏览器类型的方法
2014/02/10 Javascript
jquery使用ajax实现微信自动回复插件
2014/04/28 Javascript
JavaScript中的console.dir()函数介绍
2014/12/29 Javascript
浅谈轻量级js模板引擎simplite
2015/02/13 Javascript
浅谈JavaScript中运算符的优先级
2015/07/07 Javascript
vue数字类型过滤器的示例代码
2017/09/07 Javascript
React-router4路由监听的实现
2018/08/07 Javascript
vue axios基于常见业务场景的二次封装的实现
2018/09/21 Javascript
给localStorage设置一个过期时间的方法分享
2018/11/06 Javascript
Vue中图片Src使用变量的方法
2019/10/30 Javascript
JS数组方法shift()、unshift()用法实例分析
2020/01/18 Javascript
[01:31](回顾)杀出重围,决战TI之巅
2014/07/01 DOTA
[54:54]Newbee vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
Python进程间通信Queue实例解析
2018/01/25 Python
详解TensorFlow在windows上安装与简单示例
2018/03/05 Python
python3+PyQt5使用数据库窗口视图
2018/04/24 Python
python3将视频流保存为本地视频文件
2018/06/20 Python
PyCharm-错误-找不到指定文件python.exe的解决方法
2019/07/01 Python
Python实现大数据收集至excel的思路详解
2020/01/03 Python
Django 实现 Websocket 广播、点对点发送消息的代码
2020/06/03 Python
新手常见Python错误及异常解决处理方案
2020/06/18 Python
分享8款纯CSS3实现的搜索框功能
2017/09/14 HTML / CSS
美国汽车零部件和配件网站:CarParts
2019/03/13 全球购物
二年级体育教学反思
2014/01/15 职场文书
解除劳动合同协议书
2014/04/14 职场文书
我的中国梦口号
2014/06/16 职场文书
学生夜不归宿检讨书
2014/09/23 职场文书
大学生奖学金获奖感言(范文)
2019/08/15 职场文书
还在手动盖楼抽奖?教你用Python实现自动评论盖楼抽奖(一)
2021/06/07 Python