《PHP翻頁類 調用實例》要點:
本文介紹了PHP翻頁類 調用實例,希望對您有用。如果有疑問,可以聯系我們。
《PHP翻頁類 調用實例》是否對您有啟發,歡迎查看更多與《PHP翻頁類 調用實例》相關教程,學精學透。維易PHP學院為您提供精彩教程。
<必修php
/*
1.當前翻頁的Url問題(辦法)
2.獲取翻頁地位的名稱
3.獲取當前翻頁地位的值
4.設置每頁所顯示的數目
5.獲取總記載數
6.如果顯示數字索引時,設置所顯示的索引規模數量
7.設置首頁的稱號
8.設置上一頁的稱號
9.設置下一頁的稱號
10.設置尾頁的稱號
11.設置當前翻頁地位的樣式
*/
class Page
{
private $CurrentPageValue;//獲取當前翻頁地位的值
private $AllListCount;//獲取總記載數
private $EachPageCount='10';//設置每頁所顯示的數目
private $PageName='page';//獲取翻頁地位的名稱
private $IndexShowCount='5';//如果顯示數字索引時,設置所顯示的索引規模數量
private $HomeName='首頁';//設置首頁的稱號
private $PrevName='上一頁';//設置上一頁的稱號
private $NextName='下一頁';//設置下一頁的稱號
private $EndName='末頁';//設置尾頁的稱號
private $CurrentSeatClass='current';//設置當前翻頁地位的樣式
private $CurrentUrl;//獲取以后的Url
private $AllPageCount;//獲取總頁數
//依據必要重新給自定義屬性賦值
public function __construct($Config=array())
{
if(!empty($Config['CurrentPageValue'])){
$Config['CurrentPageValue']=abs($Config['CurrentPageValue']);
$this->CurrentPageValue=$Config['CurrentPageValue'];
}else{
$this->CurrentPageValue=1;
}
if(!empty($Config['EachPageCount'])){$this->EachPageCount=$Config['EachPageCount'];}
if(!empty($Config['AllListCount'])){$this->AllListCount=$Config['AllListCount'];}
if(!empty($Config['PageName'])){$this->PageName=$Config['PageName'];}
if(!empty($Config['IndexShowCount'])){$this->IndexShowCount=$Config['IndexShowCount'];}
if(!empty($Config['HomeName'])){$this->HomeName=$Config['HomeName'];}
if(!empty($Config['PrevName'])){$this->PrevName=$Config['PrevName'];}
if(!empty($Config['NextName'])){$this->NextName=$Config['NextName'];}
if(!empty($Config['EndName'])){$this->EndName=$Config['EndName'];}
if(!empty($Config['CurrentSeatClass'])){$this->CurrentSeatClass=$Config['CurrentSeatClass'];}
$this->ResetUrl();//從新設置當前的Url
$this->GetAllPageCount();
}
//外部挪用的公共入口
public function CallPage($ShowType='H,P,L,N,E')
{
$Str='';
if(!empty($ShowType)&&!empty($this->AllListCount))
{
$ShowTypeArr=explode(',',$ShowType);
if(in_array('H',$ShowTypeArr)){
$Str.=$this->SetHomePage();
}
if(in_array('P',$ShowTypeArr)){
$Str.=$this->SetPrevName();
}
if(in_array('L',$ShowTypeArr)){
$Str.=$this->SetLink();
}
if(in_array('N',$ShowTypeArr)){
$Str.=$this->SetNextName();
}
if(in_array('E',$ShowTypeArr)){
$Str.=$this->GetEndName();
}
}
return $Str;
}
public function BackLimit()
{
return ($this->CurrentPageValue-1)*$this->EachPageCount.','.$this->EachPageCount;
}
//獲取總頁數
public function GetAllPageCount()
{
$AllPage=ceil($this->AllListCount/$this->EachPageCount);
$this->AllPageCount=empty($AllPage)必修1:$AllPage;
return $this->AllPageCount;
}
//從新設置當前的Url
private function ResetUrl()
{
//print_r($_SERVER);
$Url=$_SERVER['REQUEST_SCHEME'].'://'.$_SERVER['HTTP_HOST'];
$CurrentUrl=$Url.$_SERVER['REQUEST_URI'];
$UrlArr=parse_url($CurrentUrl);
$ParamArr=array();
if(!empty($UrlArr['query']))
{
parse_str($UrlArr['query'],$ParamArr);
unset($ParamArr[$this->PageName]);
}
$ParamStr=http_build_query($ParamArr);
$Path=empty($UrlArr['path'])必修'':$UrlArr['path'];
$Mark=empty($ParamStr)必修'':$ParamStr.'&';
$NewUrlStr=$Url.$Path.'必修'.$Mark.$this->PageName.'=';
$this->CurrentUrl=$NewUrlStr;
}
//設置首頁
private function SetHomePage()
{
$Str='<a href="'.$this->CurrentUrl.'1">'.$this->HomeName.'</a>';
return $Str;
}
//設置上一頁
private function SetPrevName()
{
$CurrentPage=1;
if($this->CurrentPageValue>1)
{
$CurrentPage=$this->CurrentPageValue-1;
}
$Str='<a href="'.$this->CurrentUrl.$CurrentPage.'">'.$this->PrevName.'</a>';
return $Str;
}
//設置下一頁
private function SetNextName()
{
$CurrentPage=$this->AllPageCount;
if($this->CurrentPageValue<$CurrentPage)
{
$CurrentPage=$this->CurrentPageValue+1;
}
if(empty($CurrentPage))
{
$CurrentPage=1;
}
$Str='<a href="'.$this->CurrentUrl.$CurrentPage.'">'.$this->NextName.'</a>';
return $Str;
}
//設置末頁
private function GetEndName()
{
$CurrentPage=$this->AllPageCount;
if(empty($CurrentPage))
{
$CurrentPage=1;
}
$Str='<a href="'.$this->CurrentUrl.$CurrentPage.'">'.$this->EndName.'</a>';
return $Str;
}
//設置索引銜接
private function SetLink()
{
$Excursion=floor($this->IndexShowCount/2);
$Min=1;
$Max=$this->IndexShowCount;
if($this->CurrentPageValue>$Excursion)
{
$Min=$this->CurrentPageValue-$Excursion;
$Max=$this->CurrentPageValue+$Excursion;
}
if($this->CurrentPageValue+$Excursion>$this->AllPageCount)
{
$Min=$this->AllPageCount-$this->IndexShowCount+1;
if($this->AllPageCount<$this->IndexShowCount)
{
$Min=1;
}
$Max=$this->AllPageCount;
}
$Str='';
for($i=$Min;$i<=$Max;$i++)
{
$Class='';
if(!empty($this->CurrentSeatClass) && $this->CurrentPageValue==$i)
{
$Class=' class="'.$this->CurrentSeatClass.'"';
}
$Str.='<a href="'.$this->CurrentUrl.$i.'"'.$Class.'>'.$i.'</a>';
}
return $Str;
}
}
必修>