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 相关文章推荐
WordPress判断用户是否登录的代码
Mar 17 PHP
PHP session有效期session.gc_maxlifetime
Apr 20 PHP
PHP MySQL应用中使用XOR运算加密算法分享
Aug 28 PHP
如何用PHP实现插入排序?
Apr 10 PHP
PHP获取和操作配置文件php.ini的几个函数介绍
Jun 24 PHP
解析wamp5下虚拟机配置文档
Jun 27 PHP
yii框架表单模型使用及以数组形式提交表单数据示例
Apr 30 PHP
php实例分享之通过递归实现删除目录下的所有文件详解
May 15 PHP
PHP闭包函数详解
Feb 13 PHP
使用Composer安装Yii框架的方法
Mar 15 PHP
PHP模板引擎Smarty自定义变量调解器用法
Apr 11 PHP
CI(CodeIgniter)框架实现图片上传的方法
Mar 24 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中Header使用的HTTP协议及常用方法小结
2014/11/04 PHP
PHP通过串口实现发送短信
2015/07/08 PHP
PHP异步进程助手async-helper
2018/02/05 PHP
获取div编辑框,textarea,input text的光标位置 兼容IE,FF和Chrome的方法介绍
2012/11/08 Javascript
js抽奖实现随机抽奖代码效果
2013/12/02 Javascript
用Jquery选择器计算table中的某一列某一行的合计
2014/08/13 Javascript
jQuery蓝色风格滑动导航栏代码分享
2015/08/19 Javascript
jquery实现加载进度条提示效果
2015/11/23 Javascript
Vue2.0用户权限控制解决方案的示例
2018/02/10 Javascript
vue axios登录请求拦截器
2018/04/02 Javascript
JS文件中加载jquery.js的实例代码
2018/05/05 jQuery
如何用webpack4带你实现一个vue的打包的项目
2018/06/20 Javascript
Vue.js + Nuxt.js 项目中使用 Vee-validate 表单校验
2019/04/22 Javascript
Vue指令之 v-cloak、v-text、v-html实例详解
2019/08/08 Javascript
VUE项目实现主题切换的多种方法
2020/11/26 Vue.js
Vue 事件的$event参数=事件的值案例
2021/01/29 Vue.js
[01:31:02]TNC vs VG 2019国际邀请赛淘汰赛 胜者组赛BO3 第一场
2019/08/22 DOTA
[02:46]完美世界DOTA2联赛PWL DAY4集锦
2020/11/03 DOTA
用Python脚本生成Android SALT扰码的方法
2013/09/18 Python
python 性能优化方法小结
2017/03/31 Python
Python数据分析之获取双色球历史信息的方法示例
2018/02/03 Python
Python中的引用知识点总结
2019/05/20 Python
Python 操作 PostgreSQL 数据库示例【连接、增删改查等】
2020/04/21 Python
python对execl 处理操作代码
2020/06/22 Python
Weblogc domain问题
2014/01/27 面试题
亿阳信通股份有限公司笔试题(C#)
2016/03/04 面试题
50道外企软件测试面试题
2014/08/18 面试题
弘扬雷锋精神活动演讲稿
2014/03/04 职场文书
给校长的建议书
2014/03/12 职场文书
房屋买卖协议样本
2014/11/16 职场文书
好员工观后感
2015/06/17 职场文书
《红领巾真好》教学反思
2016/02/16 职场文书
2019年警察入党转正申请书最新范文
2019/09/03 职场文书
TensorFlow的自动求导原理分析
2021/05/26 Python
MySQL悲观锁与乐观锁的实现方案
2021/11/02 MySQL
Linux磁盘管理方法介绍
2022/06/01 Servers