PHP分页类

<?php
/*
 * 动态创建导航条
 */
class PageClass
{
    private $total_rows;//数据库总的记录数
    private $pagesize = 5; //每页显示多少数据
    private $now_page = 3; //当前是第几页
    private $url = ''; //跳转页面地址
    public function __set($p, $v){
        if(property_exists($this, $p)){
            $this -> $p =$v;
        }
    }
    //提供set get 方法赋值,读取值
    public function __get($p){
        if(property_exists($this, $p)){
            return $this -> $p;
        }
    }
    //创建分页导航
    public function create(){
        $first = 1;
        $url = $this->url.'?page=';
        //首页导航
        $page = <<<HTML
        <ul class="pagination">
            <li><a href="{$url}{$first}">首页</a></li>
HTML;
        //动态创建中间的页数
        //计算除去首页和尾页之外 应该生成多少页total_pages;ceil 向上取整函数
        $page_count = ceil($this->total_rows/$this->pagesize);
        //now_page<=4时 如果总页数>=7 就显示1-7页 否则显示1到最后一页
        if($this->now_page <= 4){
            if($page_count >=7 ){
                for($i = 1; $i <= 7; $i++){
                    //输出到当前页的页码时高亮输出
                    if($i == $this->now_page){
                        $page .= <<<HTML
            <li class="active"><a href="$url$i">$i</a> </li>
HTML;
                        continue;
                    }
                    $page .= <<<HTML
            <li><a href="$url$i">$i</a> </li>
HTML;
                }
            }
            else{
                for($i=1; $i <= $page_count; $i++){
                    //输出到当前页的页码时高亮输出
                    if($i == $this->now_page){
                        $page .= <<<HTML
            <li class="active"><a href="$url$i">$i</a> </li>
HTML;
                        continue;
                    }
                    $page .= <<<HTML
            <li><a href="$url$i">$i</a> </li>
HTML;
                }
            }

        }
        //now_page>=total_pages-3时 $now_page-
        elseif($this->now_page >= $page_count-3){
            for($i = $this->now_page-3; $i <= $page_count; $i++){
                //当前页的页码高亮输出
                if($i == $this->now_page){
                    $page .= <<<HTML
            <li class="active"><a href="$url$i">$i</a> </li>
HTML;
                    continue;
                }
                $page .= <<<HTML
            <li><a href="$url$i">$i</a> </li>
HTML;
            }
        }
        //当前页数在中间,显示当前页的前三页和后三夜
        else{
            for($i = $this->now_page-3; $i <= $this->now_page+3; $i++){
                //当前页的页码高亮输出
                if($i == $this->now_page){
                    $page .= <<<HTML
            <li class="active"><a href="$url$i">$i</a> </li>
HTML;
                    continue;
                }
                $page .= <<<HTML
            <li><a href="$url$i">$i</a> </li>
HTML;
            }
        }
        //尾页的导航按钮
        $page.=<<<HTML
        <li><a href="$url$page_count">尾页</a></li>
        </ul>
HTML;
        return $page;
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值