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怎样调用MSSQL的存储过程
Oct 09 PHP
php的ajax框架xajax入门与试用介绍
Dec 19 PHP
jQuery+PHP+ajax实现微博加载更多内容列表功能
Jun 27 PHP
mantis安装、配置和使用中的问题小结
Jul 14 PHP
支持png透明图片的php生成缩略图类分享
Feb 08 PHP
PHP函数超时处理方法
Feb 14 PHP
Smarty模板简单配置与使用方法示例
May 23 PHP
PHP常用的三种设计模式汇总
Aug 28 PHP
thinkPHP框架可添加js事件的分页类customPage.class.php完整实例
Mar 16 PHP
php判断str字符串是否是xml格式数据的方法示例
Jul 26 PHP
Yii2框架配置文件(Application属性)与调试技巧实例分析
May 27 PHP
关于laravel 日志写入失败问题汇总
Oct 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
QQ登录 PHP OAuth示例代码
2011/07/20 PHP
PHP 修复未正常关闭的HTML标签实现代码(支持嵌套和就近闭合)
2012/06/07 PHP
通过dbi使用perl连接mysql数据库的方法
2014/04/16 PHP
Laravel 5框架学习之Laravel入门和新建项目
2015/04/07 PHP
php使用curl实现ftp文件下载功能
2017/05/16 PHP
THINKPHP3.2使用soap连接webservice的解决方法
2017/12/13 PHP
Laravel 读取 config 下的数据方法
2019/10/13 PHP
js验证表单第二部分
2006/11/25 Javascript
用函数模板,写一个简单高效的 JSON 查询器的方法介绍
2013/04/17 Javascript
jquery退出each循环的写法
2014/02/26 Javascript
javascript中基本类型和引用类型的区别分析
2015/05/12 Javascript
javascript实现仿腾讯游戏选择
2015/05/14 Javascript
针对JavaScript中this指向的简单理解
2016/08/26 Javascript
微信小程序 实例应用(记账)详解
2016/09/28 Javascript
jQuery实现根据生日计算年龄 星座 生肖
2016/11/23 Javascript
遍历json 对象的属性并且动态添加属性的实现
2016/12/02 Javascript
微信小程序使用picker实现时间和日期选择框功能【附源码下载】
2017/12/11 Javascript
JQuery模拟实现网页中自定义鼠标右键菜单功能
2018/11/14 jQuery
基于layui实现高级搜索(筛选)功能
2019/07/26 Javascript
详解如何在Vue项目中发送jsonp请求
2019/10/25 Javascript
vue中实现图片压缩 file文件的方法
2020/05/28 Javascript
Vue实现可移动水平时间轴
2020/06/29 Javascript
Python使用multiprocessing创建进程的方法
2015/06/04 Python
用python写的一个wordpress的采集程序
2016/02/27 Python
python自动化工具之pywinauto实例详解
2019/08/26 Python
python实现ip地址的包含关系判断
2020/02/07 Python
使用keras时input_shape的维度表示问题说明
2020/06/29 Python
如何在mac下配置python虚拟环境
2020/07/06 Python
AVON雅芳官网:世界上最大的美容化妆品公司之一
2016/11/02 全球购物
工程造价专业求职信
2014/07/17 职场文书
关于清明节的演讲稿
2014/09/13 职场文书
入股协议书范本
2014/11/01 职场文书
同学聚会通知书
2015/04/20 职场文书
廉政承诺书2015
2015/04/28 职场文书
国产动画《万圣街》日语配音版制作决定!
2022/03/20 国漫
MySQL数据库如何使用Shell进行连接
2022/04/12 MySQL