- include "pager.class.php";
- $CurrentPage=isset($_GET['page'])?$_GET['page']:1;
- //die($CurrentPage);
- $myPage=new pager(1300,intval($CurrentPage));
- $pageStr= $myPage->GetPagerContent();
- //echo $pageStr;
- $myPage=new pager(90,intval($CurrentPage));
- $pageStr= $myPage->GetPagerContent();
- echo $pageStr;
- ?>
複製代碼
-
-
- php分頁示範-bbs.it-home.org
-
-
-
- include "pager.class.php";
- $CurrentPage=isset($_GET['page'])?$_GET['page']:1;
- //die($CurrentPage);
- $myPage=new pager(1300,intval($CurrentPage));
- $pageStr= $myPage->GetPagerContent();
- //echo $pageStr;
- $myPage=new pager(90,intval($CurrentPage));
- $pageStr= $myPage->GetPagerContent();
- echo $pageStr;
- ?>
-
複製代碼2) pager.class.php:
/*
- * PHP分頁類
- * @package Page
- * @Created 2013-03-27
- * @Modify 2013-03-27
- * Example:
- $myPage=new Pager(1300,intval($CurrentPage));
- $pageStr= $myPage->GetPagerContent();
- echo $pageStr;
- */
- class Pager {
- private $pageSize = 10;
- private $pageIndex;
- private $totalNum;
private $totalPagesCount;
private $pageUrl;
- private static $_instance;
public function __construct($p_totalNum, $p_pageIndex, $p_pageSize = 10,$p_initNum=3,$p_initMaxNum=5) {
- if (! isset ( $p_totalNum ) || !isset($p_pageIndex)) {
- die ( "pager initial error" );
- }
$this->totalNum = $p_totalNum;
- $this->pageIndex = $p_pageIndex;
- $this->pageSize = $p_pageSize;
- $this->initNum=$p_initNum;
- $this->initMaxNum=$p_initMaxNum;
- $this->totalPagesCount= ceil($p_totalNum / $p_pageSize);
- $this->pageUrl=$this->_getPageUrl();
$this->_initPagerLegal();
- }
- /**
- * 擷取去除page部分的當前URL字串
- *
- * @return String URL字串
- */
- private function _getPageUrl() {
- $CurrentUrl = $_SERVER["REQUEST_URI"];
- $arrUrl = parse_url($CurrentUrl);
- $urlQuery = $arrUrl["query"];
if($urlQuery){
- $urlQuery = ereg_replace("(^|&)page=" . $this->pageIndex, "", $urlQuery);
- $CurrentUrl = str_replace($arrUrl["query"], $urlQuery, $CurrentUrl);
if($urlQuery){
- $CurrentUrl.="&page";
- }
- else $CurrentUrl.="page";
} else {
- $CurrentUrl.="?page";
- }
return $CurrentUrl;
}
- /*
- *設定頁面參數合法性
- *@return void
- */
- private function _initPagerLegal()
- {
- if((!is_numeric($this->pageIndex)) || $this->pageIndex<1)
- {
- $this->pageIndex=1;
- }elseif($this->pageIndex > $this->totalPagesCount)
- {
- $this->pageIndex=$this->totalPagesCount;
- }
}
- //$this->pageUrl}={$i}
- //{$this->CurrentUrl}={$this->TotalPages}
- public function GetPagerContent() {
- $str = "";
- //首頁 上一頁
- if($this->pageIndex==1)
- {
- $str .="首頁 "."n";
- $str .="上一頁 "."n"."n";
- }else
- {
- $str .="pageUrl}=1' class='tips' title='首頁'>首頁 "."n";
- $str .="pageUrl}=".($this->pageIndex-1)."' class='tips' title='上一頁'>上一頁 "."n"."n";
- }
- /*
除首末後 頁面分頁邏輯
- */
- //10頁(含)以下
- $currnt="";
- if($this->totalPagesCount<=10)
- {
for($i=1;$i<=$this->totalPagesCount;$i++)
{
- if($i==$this->pageIndex)
- { $currnt=" class='current'";}
- else
- { $currnt=""; }
- $str .="pageUrl}={$i} ' {$currnt}>$i"."n" ;
- }
- }else //10頁以上
- { if($this->pageIndex<3) //當前頁小於3
- {
- for($i=1;$i<=3;$i++)
- {
- if($i==$this->pageIndex)
- { $currnt=" class='current'";}
- else
- { $currnt=""; }
- $str .="pageUrl}={$i} ' {$currnt}>$i"."n" ;
- }
$str.="……"."n";
for($i=$this->totalPagesCount-3+1;$i<=$this->totalPagesCount;$i++)//功能1
- {
- $str .="pageUrl}={$i}' >$i"."n" ;
}
- }elseif($this->pageIndex<=5) // 5 >= 當前頁 >= 3
- {
- for($i=1;$i<=($this->pageIndex+1);$i++)
- {
- if($i==$this->pageIndex)
- { $currnt=" class='current'";}
- else
- { $currnt=""; }
- $str .="pageUrl}={$i} ' {$currnt}>$i"."n" ;
}
- $str.="……"."n";
for($i=$this->totalPagesCount-3+1;$i<=$this->totalPagesCount;$i++)//功能1
- {
- $str .="pageUrl}={$i}' >$i"."n" ;
- }
}elseif(5<$this->pageIndex && $this->pageIndex<=$this->totalPagesCount-5 ) //當前頁大於5,同時小於總頁數-5
{
for($i=1;$i<=3;$i++)
- {
- $str .="pageUrl}={$i}' >$i"."n" ;
- }
- $str.="……";
- for($i=$this->pageIndex-1 ;$i<=$this->pageIndex+1 && $i<=$this->totalPagesCount-5+1;$i++)
- {
- if($i==$this->pageIndex)
- { $currnt=" class='current'";}
- else
- { $currnt=""; }
- $str .="pageUrl}={$i} ' {$currnt}>$i"."n" ;
- }
- $str.="……";
for($i=$this->totalPagesCount-3+1;$i<=$this->totalPagesCount;$i++)
- {
- $str .="pageUrl}={$i}' >$i"."n" ;
}
- }else
- {
for($i=1;$i<=3;$i++)
- {
- $str .="pageUrl}={$i}' >$i"."n" ;
- }
- $str.="……"."n";
for($i=$this->totalPagesCount-5;$i<=$this->totalPagesCount;$i++)//功能1
- {
- if($i==$this->pageIndex)
- { $currnt=" class='current'";}
- else
- { $currnt=""; }
- $str .="pageUrl}={$i} ' {$currnt}>$i"."n" ;
}
- }
- }
/*
- 除首末後 頁面分頁邏輯結束
- */
- //下一頁 末頁
- if($this->pageIndex==$this->totalPagesCount)
- {
- $str .="n"."下一頁"."n" ;
- $str .="末頁"."n";
- }else
- {
- $str .="n"."pageUrl}=".($this->pageIndex+1)."' class='tips' title='下一頁'>下一頁 "."n";
- $str .="pageUrl}={$this->totalPagesCount}' class='tips' title='末頁'>末頁 "."n" ;
- }
$str .= "";
- return $str;
- }
/**
- * 獲得執行個體
- * @return
- */
- // static public function getInstance() {
- // if (is_null ( self::$_instance )) {
- // self::$_instance = new pager ();
- // }
- // return self::$_instance;
- // }
- }
- ?>
複製代碼3),php分頁樣式檔案 pager.css:
body,html{ padding:0px; margin:0px; color:#333333; font-family:"宋體",Arial,Lucida,Verdana,Helvetica,sans-serif; font-size:12px; line-height:150%;}
- h1,h2,h3,h4,h5,h6,ul,li,dl,dt,dd,form,img,p,label{margin:0; padding:0; border:none; list-style-type:none;}
/**前台分頁樣式**/
- .Pagination {margin:10px 0 0;padding:5px 0;text-align:rightright; height:20px; line-height:20px; font-family:Arial, Helvetica, sans-serif,"宋體";}
- .Pagination a {margin-left:2px;padding:2px 7px 2px;}
- .Pagination .dot{ border:medium none; padding:4px 8px}
- .Pagination a:link, .Pagination a:visited {border:1px solid #dedede;color:#696969;text-decoration:none;}
- .Pagination a:hover, .Pagination a:active, .Pagination a.current:link, .Pagination a.current:visited {border:1px solid #dedede;color:#fff; background-color:#ff6600; background-image:none; border:#ff6600 solid 1px;}
- .Pagination .selectBar{ border:#dedede solid 1px; font-size:12px; width:95px; height:21px; line-height:21px; margin-left:10px; display:inline}
- .Pagination a.tips{_padding:4px 7px 1px;}
複製代碼 |