php实现的漂亮分页方法
这篇文章主要介绍了php实现的漂亮分页方法,代码很简单,需要的朋友可以参考下
分页页码显示算法
1 /** 2 * 获取分页的HTML内容 3 * @param integer $page 当前页 4 * @param integer $pages 总页数 5 * @param string $url 跳转url地址 最后的页数以 '&page=x' 追加在url后面 6 * 7 * @return string HTML内容; 8 */ 9 public static function getPageHtml($page, $pages, $url){ 10 //最多显示多少个页码 11 $_pageNum = 5; 12 //当前页面小于1 则为1 13 $page = $page<1?1:$page; 14 //当前页大于总页数 则为总页数 15 $page = $page > $pages ? $pages : $page; 16 //页数小当前页 则为当前页 17 $pages = $pages < $page ? $page : $pages; 18 19 //计算开始页 20 $_start = $page - floor($_pageNum/2); 21 $_start = $_start<1 ? 1 : $_start; 22 //计算结束页 23 $_end = $page + floor($_pageNum/2); 24 $_end = $_end>$pages? $pages : $_end; 25 26 //当前显示的页码个数不够最大页码数,在进行左右调整 27 $_curPageNum = $_end-$_start+1; 28 //左调整 29 if($_curPageNum<$_pageNum && $_start>1){ 30 $_start = $_start - ($_pageNum-$_curPageNum); 31 $_start = $_start<1 ? 1 : $_start; 32 $_curPageNum = $_end-$_start+1; 33 } 34 //右边调整 35 if($_curPageNum<$_pageNum && $_end<$pages){ 36 $_end = $_end + ($_pageNum-$_curPageNum); 37 $_end = $_end>$pages? $pages : $_end; 38 } 39 40 $_pageHtml = '<ul class="pagination">'; 41 /*if($_start == 1){ 42 $_pageHtml .= '<li><a title="第一页">«</a></li>'; 43 }else{ 44 $_pageHtml .= '<li><a title="第一页" href="'.$url.'&page=1">«</a></li>'; 45 }*/ 46 if($page>1){ 47 $_pageHtml .= '<li><a title="上一页" href="'.$url.'&page='.($page-1).'">«</a></li>'; 48 } 49 for ($i = $_start; $i <= $_end; $i++) { 50 if($i == $page){ 51 $_pageHtml .= '<li class="active"><a>'.$i.'</a></li>'; 52 }else{ 53 $_pageHtml .= '<li><a href="'.$url.'&page='.$i.'">'.$i.'</a></li>'; 54 } 55 } 56 /*if($_end == $pages){ 57 $_pageHtml .= '<li><a title="最后一页">»</a></li>'; 58 }else{ 59 $_pageHtml .= '<li><a title="最后一页" href="'.$url.'&page='.$pages.'">»</a></li>'; 60 }*/ 61 if($page<$_end){ 62 $_pageHtml .= '<li><a title="下一页" href="'.$url.'&page='.($page+1).'">»</a></li>'; 63 } 64 $_pageHtml .= '</ul>'; 65 echo $_pageHtml; 66 }