萬(wàn)能的php分頁(yè)類
更新時(shí)間:2017年07月06日 11:09:34 作者:東東東蔚
這篇文章主要為大家詳細(xì)介紹了萬(wàn)能的php分頁(yè)類,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
本文實(shí)例為大家分享了php分頁(yè)類的具體代碼,供大家參考,具體內(nèi)容如下
<?php /*核心:首頁(yè)、上一頁(yè)、下一頁(yè)、尾頁(yè)的url*/ /*超全局$_SERVER*/ $page = new Page(5,60); var_dump($page->allUrl()); class Page{ // 每頁(yè)顯示的個(gè)數(shù) protected $number; // 一共有多少數(shù)據(jù) protected $totalCount; // 當(dāng)前頁(yè) protected $page; // url protected $url; public function __construct($number,$totalCount){ $this->number= $number; $this->totalCount = $totalCount; //得到總頁(yè)數(shù) $this->totalPage = $this->getTotalPage(); //得到當(dāng)前頁(yè)數(shù) $this->page = $this->getPage(); //得到URL $this->url = $this->getUrl(); echo $this->url; } /*得到總頁(yè)數(shù)并向上取整*/ 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(){ //得到協(xié)議名 $scheme = $_SERVER['REQUEST_SCHEME']; //得到主機(jī)名 $host= $_SERVER['SERVER_NAME']; //得到端口號(hào) $port = $_SERVER['SERVER_PORT']; //得到路徑和請(qǐng)求字符串 $url = $_SERVER['REQUEST_URI']; /*中間做處理,要將page=5等這種字符串拼接URL 中,所以如果原來(lái)的url中有page這個(gè)參數(shù),我們首先 需要將原來(lái)的page參數(shù)給清空*/ $urlArray = parse_url($url); // var_dump($urlArray); $path = $urlArray['path']; if (!empty($urlArray['query'])){ //將query中的值轉(zhuǎn)化為數(shù)組 parse_str($urlArray['query'],$array); //如果他有page就將它刪掉 unset($array['page']); //將關(guān)聯(lián)數(shù)組轉(zhuǎn)化為query $query = http_build_query($array); //不為空的話就與path連結(jié) 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(), ]; } /*首頁(yè)*/ public function first(){ return $this->setUrl('page=1'); } /*下一頁(yè)*/ public function next(){ //根據(jù)當(dāng)前page得帶下一頁(yè)的頁(yè)碼 if ($this->page+1 > $this->totalPage) { $page = $this->totalPage; }else{ $page = $this->page+1; } return $this->setUrl('page='.$page); } /*上一頁(yè)*/ public function prev(){ //根據(jù)當(dāng)前page得帶下一頁(yè)的頁(yè)碼 if ($this->page - 1 < 1) { $page = 1; }else{ $page = $this->page-1; } return $this->setUrl('page='.$page); } /*尾頁(yè)*/ 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; } }
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
php根據(jù)操作系統(tǒng)轉(zhuǎn)換文件名大小寫的方法
這篇文章主要介紹了php根據(jù)操作系統(tǒng)轉(zhuǎn)換文件名大小寫的方法,需要的朋友可以參考下2014-02-02帝國(guó)CMS留言板回復(fù)后發(fā)送EMAIL通知客戶
這篇文章主要介紹了帝國(guó)CMS留言板回復(fù)后發(fā)送EMAIL通知客戶的方法和具體修改示例,有需要的小伙伴可以參考下。2015-07-07Laravel實(shí)現(xiàn)構(gòu)造函數(shù)自動(dòng)依賴注入的方法
這篇文章主要介紹了Laravel實(shí)現(xiàn)構(gòu)造函數(shù)自動(dòng)依賴注入的方法,涉及Laravel構(gòu)造函數(shù)自動(dòng)初始化的相關(guān)技巧,需要的朋友可以參考下2016-03-03PHP根據(jù)傳入?yún)?shù)合并多個(gè)JS和CSS文件的簡(jiǎn)單實(shí)現(xiàn)
這篇文章主要介紹了PHP合并多個(gè)JS和CSS文件的簡(jiǎn)單實(shí)現(xiàn),本文使用了一種比較簡(jiǎn)單的方法,重在揭示實(shí)現(xiàn)原理,需要的朋友可以參考下2014-06-06阿里云PHP SMS短信服務(wù)驗(yàn)證碼發(fā)送方法
這篇文章主要介紹了阿里云PHP SMS短信服務(wù)驗(yàn)證碼發(fā)送方法,需要的朋友可以參考下2017-07-07