首页 > 语言 > PHP > 正文

万能的php分页类

2024-05-04 23:58:33
字体:
来源:转载
供稿:网友

本文实例为大家分享了php分页类的具体代码,供大家参考,具体内容如下

<?php/*核心:首页、上一页、下一页、尾页的url*//*超全局$_SERVER*/$page = new Page(5,60);var_dump($page->allUrl());class Page{//   每页显示的个数  protected $number;//   一共有多少数据  protected $totalCount;//   当前页  protected $page;//   url  protected $url;    public function __construct($number,$totalCount){    $this->number= $number;    $this->totalCount = $totalCount;    //得到总页数    $this->totalPage = $this->getTotalPage();    //得到当前页数    $this->page = $this->getPage();    //得到URL    $this->url = $this->getUrl();    echo $this->url;  }  /*得到总页数并向上取整*/  protected function getTotalPage(){    return   ceil($this->totalCount/$this->number);  }  /**/  protected function getPage(){    if (empty($_GET['page'])){      $page=1;    }elseif ($_GET['page'] > $this->totalPage){      $page = $this->totalPage;    }elseif ($_GET["page"]<1){      $page = 1;    }else{      $page = $_GET['page'];    }    return $page;  }  protected function getUrl(){    //得到协议名    $scheme = $_SERVER['REQUEST_SCHEME'];    //得到主机名    $host= $_SERVER['SERVER_NAME'];    //得到端口号    $port = $_SERVER['SERVER_PORT'];    //得到路径和请求字符串    $url = $_SERVER['REQUEST_URI'];    /*中间做处理,要将page=5等这种字符串拼接URL    中,所以如果原来的url中有page这个参数,我们首先    需要将原来的page参数给清空*/    $urlArray = parse_url($url);//     var_dump($urlArray);    $path = $urlArray['path'];    if (!empty($urlArray['query'])){      //将query中的值转化为数组      parse_str($urlArray['query'],$array);      //如果他有page就将它删掉      unset($array['page']);      //将关联数组转化为query      $query = http_build_query($array);      //不为空的话就与path连结      if ($query != ''){        $path = $path.'?'.$query;      }    }    return 'http://'. $host.':'.$port.$path;  }  protected function setUrl($str){    if (strstr($this->url, '?')){      $url = $this->url.'&'.$str;    }else{      $url = $this->url.'?'.$str;    }    return $url;  }  /*所有的url*/  public function allUrl(){    return [      'first' => $this->first(),      'next' => $this->next(),      'prev'=> $this->prev(),      'end'=> $this->end(),    ];  }  /*首页*/  public function first(){    return $this->setUrl('page=1');  }  /*下一页*/  public function next(){    //根据当前page得带下一页的页码    if ($this->page+1 > $this->totalPage) {      $page = $this->totalPage;    }else{      $page = $this->page+1;    }    return $this->setUrl('page='.$page);  }  /*上一页*/  public function prev(){    //根据当前page得带下一页的页码    if ($this->page - 1 < 1) {      $page = 1;    }else{      $page = $this->page-1;    }    return $this->setUrl('page='.$page);  }  /*尾页*/  public function end(){    return $this->setUrl('page='.$this->totalPage);  }  /*limit 0,5*/  public function limit(){    $offset = ($this->page-1)*$this->number;    return $offset.','.$this->number;  }  }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持VeVb武林网。


注:相关教程知识阅读请移步到PHP教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选