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防注
Jan 15 PHP
php实现mysql同步的实现方法
Oct 21 PHP
php在多维数组中根据键名快速查询其父键以及父键值的代码
May 07 PHP
php实现用户在线时间统计详解
Oct 08 PHP
PHP中的函数-- foreach()的用法详解
Jun 24 PHP
PHP常用处理静态操作类
Apr 03 PHP
PHP浮点比较大小的方法
Feb 14 PHP
thinkPHP自动验证机制详解
Dec 05 PHP
phpstorm 正则匹配删除空行、注释行(替换注释行为空行)
Jan 21 PHP
PHP观察者模式定义与用法实例分析
Mar 22 PHP
PHP 观察者模式深入理解与应用分析
Sep 25 PHP
Laravel 手动开关 Eloquent 修改器的操作方法
Dec 30 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常用hash加密函数
2014/11/22 PHP
thinkPHP+phpexcel实现excel报表输出功能示例
2017/06/06 PHP
PHP 命名空间和自动加载原理与用法实例分析
2020/04/29 PHP
ExtJS 2.0 实用简明教程之布局概述
2009/04/29 Javascript
Jquery多选下拉列表插件jquery multiselect功能介绍及使用
2013/05/24 Javascript
Ext中下拉列表ComboBox组件store数据格式用法介绍
2013/07/15 Javascript
方便实用的jQuery checkbox复选框全选功能简单实例
2013/10/09 Javascript
jQuery toggleClass应用实例(附效果图)
2014/04/06 Javascript
JavaScript中的函数声明和函数表达式区别浅析
2015/03/27 Javascript
HTML+CSS+JS实现完美兼容各大浏览器的TABLE固定列
2015/04/26 Javascript
浅谈javascript中基本包装类型
2015/06/03 Javascript
微信小程序开发实战教程之手势解锁
2016/11/18 Javascript
深入理解js中的加载事件
2017/02/08 Javascript
vue2 中如何实现动态表单增删改查实例
2017/06/09 Javascript
Layui table 组件的使用之初始化加载数据、数据刷新表格、传参数
2017/09/11 Javascript
Vue.js 实现微信公众号菜单编辑器功能(一)
2018/05/08 Javascript
Javascript读取上传文件内容/类型/字节数
2019/04/30 Javascript
NodeJS读取分析Nginx错误日志的方法
2019/05/14 NodeJs
原生js实现点击按钮复制内容到剪切板
2020/11/19 Javascript
Vue项目中使用mock.js的完整步骤
2021/01/12 Vue.js
[01:48]帕吉至宝加入游戏,遗迹战场现“千劫神屠”
2018/04/07 DOTA
[32:30]夜魇凡尔赛茶话会 第一期01:谁是卧底
2021/03/11 DOTA
python 多进程通信模块的简单实现
2014/02/20 Python
python xml解析实例详解
2016/11/14 Python
python下载图片实现方法(超简单)
2017/07/21 Python
人工智能最火编程语言 Python大战Java!
2017/11/13 Python
python多进程下实现日志记录按时间分割
2019/07/22 Python
Python高级特性 切片 迭代解析
2019/08/23 Python
使用python3 实现插入数据到mysql
2020/03/02 Python
Python 制作查询商品历史价格的小工具
2020/10/20 Python
详解CSS3选择器:nth-child和:nth-of-type之间的差异
2017/09/18 HTML / CSS
纽约服装和生活方式品牌:Saturdays NYC
2017/08/13 全球购物
ETO男装官方网店:ETO Jeans
2019/02/28 全球购物
打造高效课堂实施方案
2014/03/22 职场文书
园林专业毕业生自荐信
2014/07/04 职场文书
科技工作者先进事迹
2014/08/16 职场文书