温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

PHP 分页函数

发布时间:2020-08-20 18:43:27 来源:网络 阅读:321 作者:bylucky 栏目:web开发
class page{
    /**
     * 分页
     * @param int $total            总数
     * @param int $num              每页显示数
     * @param int $curpage          当前页码
     * @param string $mpurl         URL
     * @param string $ajax          ajax
     * @param int $maxpages         最大
     * @param int $page             显示分页数
     * @param string $autogoto
     * @param string $simple
     * @return string
     */
    public function multiPage($total, $num, $curpage, $mpurl, $ajaxFun = '', $maxpages = 0, $page = 10, $autogoto = FALSE,  $simple = FALSE) {
        $shownum = $showkbd = TRUE;
        $lang['prev'] = '‹‹';
        $lang['next'] = '››';
          
        $ajaxtarget = '';
        $multipage = '';
        $mpurl = current(explode('&page', $mpurl));
        $mpurl .= strpos($mpurl, '?') ? '&' : '?';
        if ($ajaxFun) {
            $mpurl;
        }
        $realpages = 1;
        $curpage = $curpage ? $curpage : 1;
        if($total > $num) {
            $offset = 2;
            $realpages = @ceil($total / $num);
            $pages = $maxpages && $maxpages < $realpages ? $maxpages : $realpages;
            if($page > $pages) {
                $from = 1;
                $to = $pages;
            } else {
                $from = $curpage - $offset;
                $to = $from + $page - 1;
                if($from < 1) {
                    $to = $curpage + 1 - $from;
                    $from = 1;
                    if($to - $from < $page) {
                        $to = $page;
                    }
                } elseif($to > $pages) {
                    $from = $pages - $page + 1;
                    $to = $pages;
                }
            }
            $multipage = ($curpage - $offset > 1 && $pages > $page ? '<a '. $this->multiPageUrl($mpurl.'page=1', $ajaxFun) .' class="first"'.$ajaxtarget.'>1 ...</a>' : '').
            ($curpage > 1 && !$simple ? '<a '. $this->multiPageUrl($mpurl.'page='.($curpage - 1), $ajaxFun) .'  class="prev"'.$ajaxtarget.'>'.$lang['prev'].'</a>' : '');
            for($i = $from; $i <= $to; $i++) {
                $multipage .= $i == $curpage ? '<strong>'.$i.'</strong>' :
                '&nbsp;<a '. $this->multiPageUrl($mpurl.'page='.$i, $ajaxFun)  . $ajaxtarget.'>'.$i.'</a>&nbsp;';
            }
          
            $multipage .= ($to < $pages ? '&nbsp;<a '. $this->multiPageUrl($mpurl.'page='.$pages, $ajaxFun) .' class="last"'.$ajaxtarget.'>... '.$realpages.'</a>&nbsp;' : '').
            ($curpage < $pages && !$simple ? '&nbsp;<a '. $this->multiPageUrl($mpurl.'page='.($curpage + 1), $ajaxFun) .'class="next"'.$ajaxtarget.'>'.$lang['next'].'</a>&nbsp;' : '').
            ($showkbd && !$simple && $pages > $page && !$ajaxtarget && $autogoto ? '<kbd><input type="text" name="custompage" size="3" onkeydown="if(event.keyCode==13) {window.location=\''.$mpurl.'page=\'+this.value; return false;}" /></kbd>' : '');
          
            $multipage = $multipage ? '<div class="pages">'.'<span>Total</span> <span>'.$total.'</span>&nbsp;&nbsp;'.$multipage.'</div>' : '';
        }
        $maxpage = $realpages;
        return $multipage;
    }
      
    public function multiPageUrl($s, $fun){
        if ($fun) {
            $str = 'href = "javascript:;" onclick="'.$fun.'(\''.$s.'\')" ';
        }else{
            $str = 'href = "'.$s.'" ';
        }
        return $str;
    }
    public function css(){
        $s = '.pages {height: 50px;    padding-top: 20px; clear: both;}
            .pages A,.pages strong{ background-color: #0A4B99;  margin-left: 10px;    border: 1px solid #818181;    color: #FFFFFF;    display: block;    float: left;    height: 20px;    padding: 5px 13px 2px 12px;    width: auto;}
            .pages A:HOVER{background-color: #72B3FF}
            .pages strong{background-color: #fff; color: #000;}
            .pages span{float: left; padding: 5px 0 2px 12px; color:#0A4B99;font-weight: bold; font-size: 15px;}
            .pages strong{border: 1px solid #0A4B99;}
            .next, .prev{font-size: 25px; line-height: 11px;color: yellow !important;}';
        return $s;
    }
}


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI