php分页 带缩进,带多种分页方式的php分页类

Class PAGE {

//类开始

/********************************************************

* $total       记录总数

* $pageNum     每页显示的条数

* $url = ''    链接

* $page->StartPage(显示分类统计,字符分类/数字分页,跳转);

* $page->StartPage(true/false, true/false, true/false);

* site http://www.jbxue.com

*********************************************************/

private $total;   //记录总数

private $pageNum; //每页显示数

private $page;    //当前页数

private $pages;   //总的页数

private $url;     //页面url

private $Aque;    //URL参数

/* 构造函数 */

public function PAGE($total, $pageNum, $url='?'){

$this->total = $total;                 //总记录数.

$this->pageNum = $pageNum;             //每页显示数.

$this->url = $this->StrSift($url);     //判断$url的值是否合法.

$this->Aque = $_GET;                   //页面原来所传递参数.

$this->page = $this->StrSift($_GET['page']);             //当前页面GET(全局变量)方式参数,当前页码.

$this->page = is_numeric($this->page) ? $this->page : 1; //当前页码不为数字时,则把其设为1.

$this->pages = ceil($total/$pageNum);                    //总页数.

if($this->page<1) $this->page = 1;                       //当页码小于1时,则把其设为1.

//if($this->page>$this->pages) $this->page = $this->pages; //当页码大于最大页码时,则把其设为最大页码.

}

/******************

* 分页方法

*******************/

function StartPage($str, $view=true, $jump=true){

if($view==true) $PageStr .= $this->GetCount();    //分页统计信息

if($str=='str') $PageStr .= $this->GetPageStr(); //选择字符分页形式

else $PageStr .= $this->GetPageNum();        //选择数字分页形式

if($jump==true) $PageStr .= $this->JumpSelect(); //跳转

return $PageStr;

}

/**********************************************

* 显示统计信息. 格式:共5条记录 页:2/3

***********************************************/

function GetCount(){

$CountStr = "共". $this->total ."条记录 页:".$this->page."/".$this->pages."  ";

return $CountStr;

}

/***********************************************

* 分页格式形一:第一页 上一页 下一页 末 页

************************************************/

function GetPageStr(){

$url = $this->url; //获取URL

//对URL参数进行处理:数组的键是URL变量,数组的值是URL变量的值.

foreach($this->Aque as $key => $val){

switch($key){

case "page":

$Next = $val + 1;

$Prev = $val - 1;

break;

default:

$Sque .= "&$key=".$this->StrSift($val);

}

}

if($Next==0) $Next=2;

//首 页    上一页

switch($this->page){

case $this->page<=1:

$pagestr .= "首 页  ";

$pagestr .= "上一页  ";

break;

default:

$pagestr .= "首 页  ";

$pagestr .= "上一页  ";

}

//下一页    末 页

switch($this->page){

case $this->page>=$this->pages:

$pagestr .= "下一页  ";

$pagestr .= "末 页  ";

break;

default:

$pagestr .= "下一页  ";

$pagestr .= "末 页  ";

}

//返回分页字符串.

return $pagestr;

}

/***********************************************************

* 分页格式形如:共4307条记录 页:1/72   1 2 3 4 5 6 7 8 9 10

************************************************************/

function GetPageNum(){

$url = $this->url;

//对URL参数进行处理:数组的键是URL变量,数组的值是URL变量的值.

foreach($this->Aque as $key => $val){

switch($key){

case $key!="page":

$Sque .= "&$key=".$this->StrSift($val);

}

}

switch($this->pages){

//总页数大于12页:

case $this->pages>12:

//分页数字前:< <<

switch($this->page){

case $this->page>1:

$pagestr .= "< ";

$pagestr .= "<< ";

break;

default:

$pagestr .= "

$pagestr .= "<

}

//分页数字:1 2 3 4 5 6     当前页码左边6个分页链接,右边6个分页链接.

for($i=$this->page-6; $i<=$this->page+6; $i++){

if($i>$this->pages) break;

if($i==$this->page) $pagestr .= $i." ";

elseif($i>=1) $pagestr .= "$i ";

}

//分页数字后: > >>

switch($this->page){

case $this->pagepages:

$pagestr .= ">> ";

$pagestr .= "> ";

break;

default:

$pagestr .= "> ";

$pagestr .= ">> ";

}

break;

default:

//总页数小于12页:

for($i=1; $i<=$this->pages; $i++){

switch($i){

case $i==$this->page:

$pagestr .= $i." ";

break;

default:

$pagestr .= "$i ";

}

}

}

//返回分页字符串.

return $pagestr;

}

/************************

* 定义跳转页. BEGIN

*************************/

function JumpSelect(){

$url = $this->url;

//对URL参数进行处理:数组的键是URL变量,数组的值是URL变量的值.

foreach($this->Aque as $key => $val){

if($key != "page") $Sque .= "&$key=".$this->StrSift($val);

}

$SelectStr = "\n

$SelectStr .= "onChange=\"window.location='".$url."?page='+this.value+'".$Sque."'\">\n";

for($i=1; $i<=$this->pages; $i++){

if($i == $this->page) $selected = " selected";

else $selected = "";

$SelectStr .= "$i\n";

}

$SelectStr .= "

\n";

//返回分页字符串.

return $SelectStr;

}

/**********************************

* 过滤特殊字符.

***********************************/

private function StrSift($str){

$str = str_replace("\"","",$str);

$str = str_replace("'","",$str);

$str = str_replace("[url=file://%22,%22%22,$str/]\\","",$str[/url]);

$str = str_replace("\/","",$str);

$str = str_replace(":","",$str);

$str = str_replace("?","",$str); //去除会出现"??".

$str = str_replace(">","",$str);

$str = str_replace("

$str = str_replace("%","",$str);

$str = str_replace("*","",$str);

$str = str_replace("&","",$str);

$str = str_replace(".","",$str);

return $str;

}

//类结束

}

?>

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值