php自适应分页类

php中文网
发布: 2016-06-23 13:08:59
原创
1021人浏览过

<?php/**@author: ray*@e-mail: ningbo.zhang@qq.com*@date: 2016-3-29*@explain: 自适应分页类**/class page {    public $total;//总记录    public $pagesize;//每页大小    public $page;//当前页    public $pages;//总页数    public $link;//显示的页码数   1 2 3 4 5 6    public $left;//显示页码的左边数目    public $right;//显示页码的右边数目    public $pageid;//传值的变量名    public $prev;//上一页    public $next;//下一页    public $gp;//传值的方式  get/post    public $start;//中间显示页码的开始页码数    public $end;//中间显示页码的结束页码数        //渲染主题    public $theme=array('first','prev','link','next','last','total','info');        //构造方法    public function __construct($num, $pagesize, $link=7, $pageid='page', $gp='g'){        $this->total=$num;        $this->pagesize=$pagesize;        $this->link=$link;        $this->pageid=$pageid;        $this->gp=$gp;                $this->rule();    }            //计算页码    public function rule(){        //计算总页数        $this->pages=ceil($this->total/$this->pagesize);                //获得当前页        if($this->gp=='g'){//get            $this->page=isset($_get[$this->pageid])?$_get[$this->pageid]:1;        }else{//post            $this->page=isset($_post[$this->pageid])?$_post[$this->pageid]:1;        }        //约束当前页边界        $this->constraint();                //上下页        $this->prev=$this->page-1;        $this->next=$this->page+1;                //计算中间页码的开始和结束的页码数        //计算左右显示的页码数        if($this->link%2){//link为奇数            $this->left=$this->right=($this->link-1)/2;        }else{//link为偶数            $this->left=$this->link/2;            $this->right=$this->link-$this->left-1;        }        //初始化        $this->start=1;        $this->end=$this->pages;                if($this->pages>$this->link){            //1.起始页为1            if($this->page<=$this->left){                $this->end=$this->link;            }            //2.中间            if(($this->page>$this->left) && (($this->page+$this->right)<$this->pages)){                $this->start=$this->page-$this->left+1;                $this->end=$this->page+$this->right-1;            }            //3.结束页为pages            if(($this->page+$this->right)>=$this->pages){                $this->start=$this->pages-$this->link+1;            }        }            }            //边界约束    public function constraint(){        if($this->page<1) $this->page=1;        if($this->page>$this->pages) $this->page=$this->pages;    }        //获取当前页面的url    public function geturl(){        return "http://".$_server['http_host'].($_server['server_port']!='80'?(':'.$_server['server_port']):'').$_server['php_self'];    }        //获取limit    public function getlimit(){        return ($this->page-1)*$this->pagesize;    }        //改变主题    public function changetheme(array $theme){        $this->theme=$theme;    }        //渲染页码   <a>  <span name='now'>    public function show(array $arr=array()){        if(!count($arr)){            $arr=$this->theme;        }        $url=$this->geturl();        //首页、上一页约束        if($this->page==1){            $html['first']="<span>首页</span>";            $html['prev']="<span>上一页</span>";                    }else{            $html['first']="<a href='".$url."?".$this->pageid."=1'>首页</a>";            $html['prev']="<a href='".$url."?".$this->pageid."=".$this->prev."'>上一页</a>";                    }                $str='';        //起始点页码        if($this->start!=1){            $str='<span>...</span>';        }                for($i=$this->start;$i<=$this->end;$i++){            if($i==$this->page){                $str.="<span name='now'>$i</span>";                continue;            }            $str.="<a href='".$url."?".$this->pageid."=".$i."'>$i</a>";        }        //结束点页码        if($this->end!=$this->pages){            $str.='<span>...</span>';        }                $html['link']=$str;                //下一页、末页约束        if($this->page==$this->pages){            $html['next']="<span>下一页</span>";            $html['last']="<span>末页</span>";                    }else{            $html['next']="<a href='".$url."?".$this->pageid."=".$this->next."'>下一页</a>";            $html['last']="<a href='".$url."?".$this->pageid."=".$this->pages."'>末页</a>";                    }        $html['total']="共有".$this->total."条结果 ";        $html['info']="当前为第".$this->page."/".$this->pages."页";                $res='';        foreach($arr as $v){            $res.=$html[$v];        }        return $res;    }}
登录后复制


自适应h5滑动页面
自适应h5滑动页面

自适应h5滑动页面

自适应h5滑动页面 44
查看详情 自适应h5滑动页面
PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号