php分页代码 页数太多,php google或baidu分页代码

php实现google与baidu的分页代码,需要的朋友可以参考下。

/**

作者:潇湘博客

时间:

2009-11-26

php技术群:

37304662

使用方法:

include_once'Pager.class.php';

$pager=new Pager();

if(isset($_GET['page']))

$pager->setCurrentPage($_GET['page']);

else

$pager->setCurrentPage(1);

$pager->setRecorbTotal(1000);

$pager->setBaseUri("page.php?");

echo $pager->execute();

**/

class Pager{

/**

*int总页数

**/

protected $pageTotal;

/**

*int上一页

**/

protected $previous;

/**

*int下一页

**/

protected $next;

/**

*int中间页起始序号

**/

protected $startPage;

/**

*int中间页终止序号

**/

protected $endPage;

/**

*int记录总数

**/

protected $recorbTotal;

/**

*int每页显示记录数

**/

protected $pageSize;

/**

*int当前显示页

**/

protected $currentPage;

/**

*string基url地址

**/

protected $baseUri;

/**

*@returnstring获取基url地址

*/

public function getBaseUri(){

return$this->baseUri;

}

/**

*@returnint获取当前显示页

*/

public function getCurrentPage(){

return $this->currentPage;

}

/**

*@returnint获取每页显示记录数

*/

public function getPageSize(){

return $this->pageSize;

}

/**

*@returnint获取记录总数

*/

public function getRecorbTotal(){

return$this->recorbTotal;

}

/**

*@paramstring$baseUri设置基url地址

*/

public function setBaseUri($baseUri){

$this->baseUri=$baseUri;

}

/**

*@paramint$currentPage设置当前显示页

*/

public function setCurrentPage($currentPage){

$this->currentPage=$currentPage;

}

/**

*@paramint$pageSize设置每页显示记录数

*/

public function setPageSize($pageSize){

$this->pageSize=$pageSize;

}

/**

*@paramint$recorbTotal设置获取记录总数

*/

public function setRecorbTotal($recorbTotal){

$this->recorbTotal=$recorbTotal;

}

/**

*构造函数

**/

public function __construct()

{

$this->pageTotal=0;

$this->previous=0;

$this->next=0;

$this->startPage=0;

$this->endPage=0;

$this->pageSize=20;

$this->currentPage=0;

}

/**

*分页算法

**/

private function arithmetic(){

if($this->currentPage<1)

$this->currentPage=1;

$this->pageTotal=floor($this->recorbTotal/$this->pageSize)+($this->recorbTotal%$this->pageSize>0?1:0);

if($this->currentPage>1&&$this->currentPage>$this->pageTotal)

header('location:'.$this->baseUri.'page='.$this->pageTotal);

$this->next=$this->currentPage+1;

$this->previous=$this->currentPage-1;

$this->startPage=($this->currentPage+5)>$this->pageTotal?$this->pageTotal-10:$this->currentPage-5;

$this->endPage=$this->currentPage<5?11:$this->currentPage+5;

if($this->startPage<1)

$this->startPage=1;

if($this->pageTotalendPage)

$this->endPage=$this->pageTotal;

}

/**

*分页样式

**/

protected function pageStyle(){

$result="共".$this->pageTotal."页";

if($this->currentPage>1)

$result.="baseUri."page=1\">第1页 baseUri."page=$this->previous\">前一页";

else

$result.="第1页 ";

for($i=$this->startPage;$i<=$this->endPage;$i++){

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

$result.="$i";

else

$result.=" baseUri."page=$i\">$i ";

}

if($this->currentPage!=$this->pageTotal){

$result.="baseUri."page=$this->next\">后一页 ";

$result.="baseUri."page=$this->pageTotal\">最后1页";

}else{

$result.="最后1页 ";

}

return $result;

}

/**

*执行分页

**/

public function execute(){

if($this->baseUri!=""&&$this->recorbTotal==0)

return"";

$this->arithmetic();

return $this->pageStyle();

}

}

?>

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值