<?php
//分頁類
class page{
private $total_rows; //總條數(shù)
private $onepage_rows;//一頁顯示數(shù)量
private $total_page; //總頁數(shù)
private $page_rows; //頁碼數(shù)量
private $start_id;//描述起始ID
private $end_id;//描述結(jié)束ID
private $desc = ''; //描述上一頁,下一頁
private $self_page; //當(dāng)前頁
private $url;
public function __construct($total,$onepage_rows=10,$page_rows=5,$desc=''){
$this->total_rows = $total;
$this->onepage_rows = $onepage_rows;
$this->page_rows = $page_rows;
$this->total_page = ceil($this->total_rows / $this->onepage_rows);
$this->self_page = min(max((int)@$_GET['page'],1),$this->total_page);
$this->start_id= ($this->self_page-1)*$this->onepage_rows+1;
$this->end_id= min($this->self_page*$this->onepage_rows , $this->total_rows);
$this->desc = $this->desc($desc); //上一頁 下一頁 共X條記錄等信息
$this->url = $this->requestUrl(); //URL生成
}
private function requestUrl(){
$url =isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : $_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING'] ;
$parse_url = parse_url($url);
if(isset($parse_url['query'])){
parse_str($parse_url['query'],$arr);
unset($arr['page']);
$url = $parse_url['path'] .'?'.http_build_query($arr).'&page=';
}else{
$url = strstr($url,'?') ? $url.'page=' :$url. '?page=';
}
return $url;
}
//指定列表頁碼
public function pagelist(){
$start=max(1,min($this->self_page-ceil($this->page_rows/2),$this->total_page-$this->page_rows));
$end=$start + $this->page_rows;
$arr = array();
for($i=$start; $i<=$end; $i++){
if($i == $this->self_page){
$arr[$i]['url'] = '';
$arr[$i]['str'] = $i;
continue;
}
$arr[$i]['url'] = $this->url.$i;
$arr[$i]['str'] = $i;
}
return $arr;
}
//返回代碼列表的字符串表示
public function pageshow(){
$pagelist = $this->pagelist();
$pagestr = '';
foreach($pagelist as $v){
if(empty($v['url'])){
$pagestr .= '<strong>'.$v['str'].'</strong>';
continue;
}
$pagestr .= "<a href='".$v['url']."'>".$v['str']."</a>";
}
return $pagestr;
}
public function desc($desc){
$d = array('prev' => '上一頁','next' => '下一頁','first'=> '首頁','last' => '末頁');
if(empty($desc) || !is_array($desc)){ return $d;}
function filter($v){
return !empty($v);
}
return array_merge($d,array_filter($desc,'filter'));
}
//首頁
public function first(){
return $this->self_page > 1 ? '<a href="'.$this->url.'1">'.$this->desc['first'].'</a>':'';
}
//末頁
public function last(){
return $this->self_page < $this->page_rows ? '<a href="'.$this->url.$this->page_rows.'">'.$this->desc['last'].'</a>':'';
}
//上一頁
public function prev(){
return $this->self_page > 1 ? '<a href="'.$this->url.($this->self_page-1).'">'.$this->desc['prev'].'</a>':'';
}
//下一頁
public function next(){
return $this->self_page < $this->total_page ? '<a href="'.$this->url.($this->self_page+1).'">'.$this->desc['next'].'</a>':'';
}
//返回當(dāng)前第X-X條
public function nowpage(){
return '當(dāng)前第'.$this->self_page.'頁 第'.$this->start_id.'——'.$this->end_id.'條';
}
public function limit(){
return 'limit '.max(0,($this->self_page-1)*$this->onepage_rows).','.$this->onepage_rows;
}
}
?>
網(wǎng)站設(shè)計制作過程拒絕使用模板建站;使用PHP+MYSQL原生開發(fā)可交付網(wǎng)站源代碼;符合網(wǎng)站優(yōu)化排名的后臺管理系統(tǒng);成都網(wǎng)站設(shè)計、網(wǎng)站建設(shè)、
外貿(mào)網(wǎng)站建設(shè)收費合理;免費進行網(wǎng)站備案等企業(yè)網(wǎng)站建設(shè)一條龍服務(wù).我們是一家持續(xù)穩(wěn)定運營了十載的
創(chuàng)新互聯(lián)建站網(wǎng)站建設(shè)公司。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
本文題目:php分頁類-創(chuàng)新互聯(lián)
轉(zhuǎn)載來源:http://jinyejixie.com/article26/isgcg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號、定制開發(fā)、網(wǎng)頁設(shè)計公司、品牌網(wǎng)站制作、標(biāo)簽優(yōu)化、網(wǎng)站設(shè)計
廣告
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源:
創(chuàng)新互聯(lián)