加入收藏 | 设为首页 | 会员中心 | 我要投稿 呼伦贝尔站长网 (https://www.0470zz.com/)- 科技、建站、边缘计算、物联网、开发!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php怎么写分页?php实现的漂亮分页方法

发布时间:2022-07-22 09:33:10 所属栏目:PHP教程 来源:互联网
导读:分页页码显示算法. /** * 获取分页的HTML内容 * @param integer $page 当前页 * @param integer $pages 总页数 * @param string $url 跳转url地址 最后的页数以 page=x 追加在url后面 * * @return string HTML内容; */ public static function getPageHtml($
  分页页码显示算法.
 
  /**
    * 获取分页的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;
   } 

(编辑:呼伦贝尔站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读