php好看漂亮的分页,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 .="首页 "."\n";

$str .="上一页 "."\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 .="$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 .="$i"."\n" ;

}

$str.="……"."\n";

for($i=$this->totalPagesCount-3+1;$i<=$this->totalPagesCount;$i++)//功能1

{

$str .="$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 .="$i"."\n" ;

}

$str.="……"."\n";

for($i=$this->totalPagesCount-3+1;$i<=$this->totalPagesCount;$i++)//功能1

{

$str .="$i"."\n" ;

}

}elseif(5pageIndex  &&  $this->pageIndex<=$this->totalPagesCount-5 )             //当前页大于5,同时小于总页数-5

{

for($i=1;$i<=3;$i++)

{

$str .="$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 .="$i"."\n" ;

}

$str.="……";

for($i=$this->totalPagesCount-3+1;$i<=$this->totalPagesCount;$i++)

{

$str .="$i"."\n" ;

}

}else

{

for($i=1;$i<=3;$i++)

{

$str .="$i"."\n" ;

}

$str.="……"."\n";

for($i=$this->totalPagesCount-5;$i<=$this->totalPagesCount;$i++)//功能1

{

if($i==$this->pageIndex)

{    $currnt=" class='current'";}

else

{    $currnt="";    }

$str .="$i"."\n" ;

}

}

}

/*

除首末后 页面分页逻辑结束

*/

//下一页 末页

if($this->pageIndex==$this->totalPagesCount)

{

$str .="\n"."下一页"."\n" ;

$str .="末页"."\n";

}else

{

$str .="\n"."下一页 "."\n";

$str .="末页 "."\n" ;

}

$str .= "

";

return $str;

}

/**

* 获得实例

* @return

*/

//  static public function getInstance() {

//      if (is_null ( self::$_instance )) {

//          self::$_instance = new pager ();

//      }

//      return self::$_instance;

//  }

}

?>

----调用分页类

----分页演示-----

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;

?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值