php分页查询带上类型,带多种分页方式的php分页类

本文介绍了一个PHP分页类的实现,该类能够处理记录总数、每页显示数、URL参数,并提供了字符分页和数字分页两种形式。通过StartPage方法,可以输出分页统计信息、分页链接以及跳转选择。此外,还展示了如何过滤URL中的特殊字符,确保分页安全。
摘要由CSDN通过智能技术生成

Class PAGE {

//类开始

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

* $total 记录总数

* $pageNum 每页显示的条数

* $url = ” 链接

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

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

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

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->pagepage = 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 .= “下一页 “;

}

//返回分页字符串.

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 .= “< “;

break;

default:

$pagestr .= “< ";

$pagestr .= “<< ";

}

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

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

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

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

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

}

//分页数字后: > >>

switch($this->page){

case $this->pagepages:

break;

default:

$pagestr .= “> “;

$pagestr .= “>> “;

}

break;

default:

//总页数小于12页:

for($i=1; $ipages; $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; $ipages; $i++){

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

else $selected = “”;

$SelectStr .= “$in”;

}

$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;

}

//类结束

}

?>

复制代码

有兴趣的朋友,还可以参考下如下的文章:

一个不错的php分页类的代码

一个实用的php分页类

分页样式表:

/*下拉菜单或文本输入框样式*/

#JumpSelect{

background:#159bd0;

border:1px solid #ffff66;

color:#ffff66;

width:37px;

font-size:11px;

padding:0 0 0 0;

margin:0 0 0 0;

SCROLLBAR-FACE-COLOR: #d0dff7;

SCROLLBAR-HIGHLIGHT-COLOR: #d0dff7;

SCROLLBAR-SHADOW-COLOR: #FFFFFF;

SCROLLBAR-3DLIGHT-COLOR: #FFFFFF;

SCROLLBAR-ARROW-COLOR: #ffffff;

SCROLLBAR-TRACK-COLOR: #ffffff;

SCROLLBAR-DARKSHADOW-COLOR: #d0dff7;

base-color: #ededed;

scrollbar-arrow-color: #000;

scrollbar-highlight-color: #fafafa;

scrollbar-shadow-color: #fafafa;

scrollbar-track-color: #ededed;

scrollbar-face-color: #fafafa;

scrollbar-darkshadow-color: #ededed;

scrollbar-3dlight-color: #ededed;

}

复制代码

","",$str);

=1:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值