美文网首页
php分页类

php分页类

作者: php红薯 | 来源:发表于2017-05-31 11:04 被阅读0次

    class Paging

    {

    //记录的总条数

    protected $total;

    //每一页的条数

    protected $pageSize;

    //当前页

    protected $page;

    //页码的参数名字

    protected $pageName;

    //总页数

    protected $pageCount;

    //基本URL

    protected $url;

    /**

    * [__construct description]

    * @param [type]  $total    [总页数]

    * @param integer $pageSize [每一页的条数]

    * @param string  $pageName [页码参数的名字]

    */

    public function __construct($total, $pageSize=5, $pageName='page')

    {

    $this->total = $total;

    $this->pageSize = $pageSize;

    $this->pageCount = ceil($total / $pageSize);

    $this->pageName = $pageName;

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

    $this->page = $this->getPage();

    }

    public function headPage()

    {

    return $this->setUrl(1);

    }

    public function prevPage()

    {

    if ($this->page < 2) {

    $page = 1;

    } else {

    $page = $this->page - 1;

    }

    return $this->setUrl($page);

    }

    public function nextPage()

    {

    if ($this->page < $this->pageCount) {

    $page = $this->page + 1;

    } else {

    $page = $this->pageCount;

    }

    return $this->setUrl($page);

    }

    public function tailPage()

    {

    return $this->setUrl($this->pageCount);

    }

    public function givenPage($page)

    {

    if ($page < 1) {

    $page = 1;

    } else if ($page > $this->pageCount) {

    $page = $this->pageCount;

    }

    return $this->setUrl($page);

    }

    public function listed()

    {

    return [

    'head'=>$this->headPage(),

    'prev'=>$this->prevPage(),

    'next'=>$this->nextPage(),

    'tail'=>$this->tailPage()

    ];

    }

    protected function getPage()

    {

    //我们约定,确定页码的参数默认是page

    if (empty($_GET[$this->pageName])) {

    return 1;

    }

    $page = (int)$_GET[$this->pageName];

    if ($page < 1) {

    $page = 1;

    } else if ($page > $this->pageCount) {

    $page = $this->pageCount;

    }

    return $page;

    }

    protected function getUrl()

    {

    //获取协议

    $url = $_SERVER['REQUEST_SCHEME'] . '://';

    //拼接主机

    $url .= $_SERVER['HTTP_HOST'];

    //拼接端口

    $url .= ':' . $_SERVER['SERVER_PORT'];

    //拼接URI

    $requestUri = $_SERVER['REQUEST_URI'];

    if (isset($_GET[$this->pageName])) {

    $replaceStr = $this->pageName . '=' . $_GET[$this->pageName];

    $replaceArr = [

    $replaceStr.'&',

    '&'.$replaceStr,

    '?'.$replaceStr

    ];

    $requestUri = str_replace($replaceArr, '', $requestUri);

    }

    return $url . $requestUri;

    }

    protected function setUrl($page)

    {

    if (strpos($this->url, '?')) {

    return $this->url . '&' . $this->pageName . '=' . $page;

    } else {

    return $this->url . '?' . $this->pageName . '=' . $page;

    }

    }

    }

    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。互联网+时代,时刻要保持学习,携手千锋PHP,Dream It Possible。

    相关文章

      网友评论

          本文标题:php分页类

          本文链接:https://www.haomeiwen.com/subject/gowdfxtx.html