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 相关文章推荐
计数器详细设计
Oct 09 PHP
php的大小写敏感问题整理
Dec 29 PHP
php二维数组排序详解
Nov 06 PHP
Destoon旺旺无法正常显示,点击提示“会员名不存在”的解决办法
Jun 21 PHP
PHP中大于2038年时间戳的问题处理方案
Mar 03 PHP
Yii2 ActiveRecord多表关联及多表关联搜索的实现
Jun 30 PHP
Yii基于CActiveForm的Ajax数据验证用法示例
Jul 14 PHP
php使用ftp远程上传文件类(完美解决主从文件同步问题的方法)
Sep 23 PHP
PHP精确计算功能示例
Nov 29 PHP
Yii框架扩展CGridView增加导出CSV功能的方法
May 24 PHP
php实现自定义中奖项数和概率的抽奖函数示例
May 26 PHP
浅析PHP中的闭包和匿名函数
Dec 25 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提取中文首字母
2008/04/09 PHP
PHP CURL 内存泄露问题解决方法
2015/02/12 PHP
php将HTML表格每行每列转为数组实现采集表格数据的方法
2015/04/03 PHP
php抓取并保存网站图片的实现代码
2015/10/28 PHP
PHP工厂模式的日常使用
2019/03/20 PHP
基于jquery的放大镜效果
2012/05/30 Javascript
javascript之Partial Application学习
2013/01/10 Javascript
Node.js 服务器端应用开发框架 -- Hapi.js
2014/07/29 Javascript
浅谈页面装载js及性能分析方法
2014/12/09 Javascript
详解WordPress开发中get_current_screen()函数的使用
2016/01/11 Javascript
详解nodejs微信公众号开发——6.自定义菜单
2017/04/13 NodeJs
vue-axios使用详解
2017/05/10 Javascript
原生JS实现的碰撞检测功能示例
2018/05/18 Javascript
性能优化篇之Webpack构建速度优化的建议
2019/04/03 Javascript
js实现简单商品筛选功能
2021/02/02 Javascript
[02:52]DOTA2新手基础教程 米波
2014/01/21 DOTA
使用python将mdb数据库文件导入postgresql数据库示例
2014/02/17 Python
Python 逐行分割大txt文件的方法
2017/10/10 Python
浅析python 中大括号中括号小括号的区分
2019/07/29 Python
Python第三方库的几种安装方式(小结)
2020/04/03 Python
浅谈Tensorflow加载Vgg预训练模型的几个注意事项
2020/05/26 Python
python3判断IP地址的方法
2021/03/04 Python
SmartBuyGlasses台湾:名牌眼镜,名牌太阳眼镜及隐形眼镜
2017/01/04 全球购物
adidas马来西亚官网:adidas MY
2020/09/12 全球购物
C++的几个面试题附答案
2016/08/03 面试题
高三自我鉴定范文
2013/10/19 职场文书
大课间体育活动方案
2014/03/12 职场文书
教师廉洁自律个人总结
2015/02/10 职场文书
2015年信息中心工作总结
2015/05/25 职场文书
毕业论文指导老师意见
2015/06/04 职场文书
2019年销售人员的职业生涯规划书
2019/03/25 职场文书
Python+Appium新手教程
2021/04/17 Python
python中的None与NULL用法说明
2021/05/25 Python
MySQL查看表和清空表的常用命令总结
2021/05/26 MySQL
使用ORM新增数据在Mysql中的操作步骤
2021/07/26 MySQL
MyBatis自定义SQL拦截器示例详解
2021/10/24 Java/Android