栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > PHP

PHP 分页类

PHP 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

PHP 分页类

     //分页类

    class Page{

            private $total;          //总记录数

            private $nums;        //每页显示的条数

            private $pages;       //总页数

            private $cpage;      //当前页

            private $url;           //当前url

            public  function __construct($total,$nums){

                        $this->total      =     $total;

                        $this->nums     =     $nums;

                        $this->pages    =      $this->getPages();

                        $this->url         =      $this->setUrl();

                        //获取当前页

                        $this->cpage   =    !empty($_GET['page']) ? intval($_GET['page']):1;

                        $this->cpage   =    $this->cpage>0 ?$this->cpage:1;

                        $this->cpage   =    $this->cpage>$this->pages?$this->pages:$this->cpage;

            }

             

            private function setUrl(){

                        $url    =   $_SERVER['REQUEST_URI'];

                        if(strstr($url, "?")){

                            $arr = parse_url($url);

                            if(isset($arr['query'])){

                                parse_str($arr['query'],$output);

                            }

                            //删除url中重复的page=n的字符串

                            unset($output['page']);

                            $url = $arr['path']."?".http_build_query($output);

                        }else{

                            $url .="?";

                        }

                        return $url;

            }

            //获取页数

            private function getPages(){

                        return  ceil($this->total/$this->nums);// 向上取整法

            }

             

            //首页

            private function first(){

                        //如果当前页是第一页 则不显示这些

                        if($this->cpage>1){

                            $pre    =   $this->cpage-1;

                            return 'url.'&page=1">首页  url.'&page='.$pre.'">上一页';

                        }else{

                            return '';

                        }                       

            }

             

            //列表

            private function flist(){

                        $list       =   "";

                        $num    =   4;

                        //当前页之前的设置

                        for($i=$num;$i >=1;$i--){

                            $page   =   $this->cpage-$i;

                            if($page >1){

                                $list      .=  ' url.'&page='.$page.'">'.$page.' ';

                            }

                        }

                        //当前页的设置

                        if($this->pages>1){

                            $list   .=' '.$this->cpage.' ';

                        }

                        //当前页之后的设置

                        for($i=1;$i <=$num;$i++){

                            $page   =   $this->cpage+$i;

                            if($page <= $this->pages){

                                $list      .=  ' url.'&page='.$page.'">'.$page.' ';

                            }else{

                                break;

                            }                            

                        }

                        return $list;

            }

             

            //末页

            private function last(){

                if($this->cpage < $this->pages){

                    $next    =   $this->cpage+1;

                    return 'url.'&page='.$next.'">下一页  url.'&page='.$this->pages.'">末页 ';

                }else{

                    return '';

                }

                       

            }

            //开始    从多少条记录开始

            private function start(){

                        return  ($this->cpage-1)*$this->nums+1;

            }

            //结束    到多少条记录结束

            private function end(){

                        return  min($this->cpage*$this->nums,$this->total);

            }

            //当前显示的条数

            private function currnum(){

                        return $this->end()-$this->start()+1;

            }

            //分页方法

            public function fpage(){

                 

                        $arr =  func_get_args();

                         

                        $fpage ="";

                        $pages[0]=" 共{$this->total}条记录 ";

                        $pages[1]=" 本页显示".$this->currnum()."条记录 ";

                        $pages[2]=" 从".$this->start()."-".$this->end()."条 ";

                        $pages[3]=" {$this->cpage}/{$this->pages} ";

                        $pages[4]=" ".$this->first()." ";

                        $pages[5]=" ".$this->flist()." ";

                        $pages[6]=" ".$this->last()." ";

                        if(count($arr)<1)

                        $arr    =   array(0,1,2,3,4,5,6);

                        foreach($arr as $n){

                                $fpage  .=  $pages[$n];

                        }

                        return $fpage;

        }

         

    }


调用分页类

 include 'print.php';

        $page = new Page(1000,10);

       echo $page->fpage(6,4,5);

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/229955.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号