精美漂亮的php分頁類代碼_PHP教程

來源:互聯網
上載者:User
這是一款簡單,方便,功能齊全的分頁類,可以根據自己的需要更改CSS樣式檔案以實現分頁顏色的控制,利用php分頁類,可以省去自己很多時間,只需要在分頁的地方嵌入即可,下面看下使用方法:

1,在head裡包含pager.css
複製代碼 代碼如下:


2,在分頁處進行類的執行個體化:

複製代碼 代碼如下:
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;
?>

3,讀取mysql資料庫和分頁計算檔案需要自己寫出來。例如:

$info=mysql_query("select * from member order by id desc limit $offset,$info_num"); 這樣才能調到 mysql 資料庫和當前頁碼等。

下面是一共包含的三個檔案:(1) index.php:調用分頁類,顯示分頁 (2) pager.class.php:php分頁類 (3)pager.css:css樣式美化檔案

(1) index.php:

複製代碼 代碼如下:


----分頁示範-----



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
* @link http://www.60ie.net
* 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) 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;}

轉載:http://60ie.net/article/8/365.html

http://www.bkjia.com/PHPjc/326694.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/326694.htmlTechArticle這是一款簡單,方便,功能齊全的分頁類,可以根據自己的需要更改CSS樣式檔案以實現分頁顏色的控制,利用php分頁類,可以省去自己很多...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.