php自定义分页类

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
<?php
class Paging
{
    private $totalStrip//总条数
    private $pageStrip;   //每页条数
    private $totalPages//总页数
    private $url;         //当前页面的url
    private $nowPage;     //当前的页码
    private $aroundPage//当前页左右条数
    public function __construct($totalStrip,$pageStrip,$aroundPage)
    {
        $this->totalStrip = $totalStrip;           //总条数
        $this->pageStrip = $pageStrip??5;          //每页条数
        $this->totalPages = $this->getTotalPages();//总页数
        $this->url = $this->getUrl();              //当前页面的url
        $this->nowPage = $this->getNowPage();      //当前的页码
        $this->aroundPage = $aroundPage??2;        //当前页左右条数
    }
    //总页数
    private function getTotalPages()
    {
        return ceil($this->totalStrip/$this->pageStrip);
    }
    //当前页面的url
    private function getUrl()
    {
        return $_SERVER['REQUEST_SCHEME'].'://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'];
    }
    //当前的页码
    private function getNowPage()
    {
        return isset($_GET['page'])?$_GET['page']:1;
    }
    //首页
    private function firstPage()
    {
        return "<a href='{$this->url}?page=1'>首页</a>";
    }
    //上一页
    private function prevPage()
    {
        $prevPage = $this->nowPage - 1;
        return "<a href='{$this->url}?page={$prevPage}'>上一页</a>";
    }
    //当前页之前
    private function leftPage()
    {
        $str = '';
        for($i=$this->aroundPage; $i >= 1; $i--){
            $Page = $this->nowPage-$i;
            if($Page > 0){
                $str .= "<a href='{$this->url}?page=$Page'>$Page</a>";
            }
 
        }
        return $str;
    }
    //当前页
    private function toNowPage()
    {
        return "<a>$this->nowPage</a>";
    }
    //当前页之后
    private function rightPage()
    {
        $str = '';
        for($i=1; $i <= $this->aroundPage; $i++){
            $Page = $this->nowPage+$i;
            if($Page < $this->totalPages) {
                $str .= "<a href='{$this->url}?page=$Page'>$Page</a>";
            }
        }
        return $str;
    }
    //下一页
    private function nextPage()
    {
        $nextPage = $this->nowPage + 1;
        return "<a href='{$this->url}?page={$nextPage}'>下一页</a>";
    }
    //尾页
    private function lastPage()
    {
        return "<a href='{$this->url}?page=$this->totalPages'>尾页</a>";
    }
    public function show()
    {
        $str = "";
        if($this->nowPage > 1){
            $str .= $this->firstPage();
            $str .= $this->prevPage();
            $str .= $this->leftPage();
        }
 
 
        $str .= $this->toNowPage();
        if($this->nowPage < $this->totalPages){
            $str .= $this->rightPage();
            $str .= $this->nextPage();
            $str .= $this->lastPage();
        }
 
        return $str;
    }
}
//$a = new Paging(20,3,2);
//echo $a->show();

  

posted @   是梦别喊疼想赢别喊停  阅读(19)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示