家园首页 Php4手册 我的相册 家园下载 个人文集 给我留言
我形我塑,网络相册,www.5x54.com 相册 相册 心情相册,少女相册 免费申请,我形我塑免费相册
 家园 个人文集   http://www.5x54.com
 


一个php通用分页类


作者:网上收集    点击: 读取中...

一个通用的php分页类(生成各种样式的分页html代码版权保护,请不要随意复制^%#$32260)98sa。^_^,内部不包含数据读取)版权保护,请不要随意复制^%#$32260)98sa。^_^,和大家分享下版权保护,请不要随意复制^%#$32260)98sa。^_^,看过的朋友记得给我留点意见版权保护,请不要随意复制^%#$32260)98sa。^_^,我会不断改进的。(PHP_VERSION>5.0) 版权保护版权保护,请不要随意复制^%#$32260)98sa。^_^,请不要随意复制^%#$32260)98sa。^_^
版权保护版权保护,请不要随意复制^%#$32260)98sa。^_^,请不要随意复制^%#$32260)98sa。^_^
classPageMaker.php 版权保护版权保护,请不要随意复制^%#$32260)98sa。^_^,请不要随意复制^%#$32260)98sa。^_^
版权保护版权保护,请不要随意复制^%#$32260)98sa。^_^,请不要随意复制^%#$32260)98sa。^_^
引用代码: <?php
/**
*  @name  分页代码通用生成类
*  @author  Samoay
*  @copyright  http://www.samoay.com  2007
*  @version  0.1.0  alpha
*  @example  以下为调用说明(若希望直接拷贝调用示例版权保护,请不要随意复制^%#$32260)98sa。^_^,请到37行):
*  
*  //获取当前分页
*  $curpage  =  trim($_GET['page']);
*  if(!is_numeric($curpage))
*    $curpage  =  1;
*  
*  //引用类文件
*  require_once('classPageMaker.php');
*  
*  //建立对象版权保护,请不要随意复制^%#$32260)98sa。^_^,入口参数为7个版权保护,请不要随意复制^%#$32260)98sa。^_^,全部可选(若需要输出分页版权保护,请不要随意复制^%#$32260)98sa。^_^,则p2必选设置)版权保护,请不要随意复制^%#$32260)98sa。^_^,依次为:
*  //    p1(string)基础链接地址版权保护,请不要随意复制^%#$32260)98sa。^_^,不带任何参数
*  //    p2(int)记录总数版权保护,请不要随意复制^%#$32260)98sa。^_^,默认为0
*  //    p3(int)每页记录数版权保护,请不要随意复制^%#$32260)98sa。^_^,默认为1
*  //    p4(bool)是否显示文本链接版权保护,请不要随意复制^%#$32260)98sa。^_^,默认为true
*  //    p5(int)数字分页展开数量版权保护,请不要随意复制^%#$32260)98sa。^_^,为0则不显示数字分页版权保护,请不要随意复制^%#$32260)98sa。^_^,默认为0
*  //    p6(bool)是否显示跳转下拉表单版权保护,请不要随意复制^%#$32260)98sa。^_^,默认为false
*  //    p7(bool)是否显示统计信息(总计多少页版权保护,请不要随意复制^%#$32260)98sa。^_^,当前第多少页)版权保护,请不要随意复制^%#$32260)98sa。^_^,默认为false
*  $mypage  =  new  PageMaker('testPageMaker.php',535,20,true,2,true,true);
*  
*  //设置url参数版权保护,请不要随意复制^%#$32260)98sa。^_^,不要带页码参数和?号版权保护,请不要随意复制^%#$32260)98sa。^_^,可选
*  $mypage->setQueryString('class=5&type=best');
*  
*  //设置文本链接的文字版权保护,请不要随意复制^%#$32260)98sa。^_^,可选
*  $mypage->setPagestring(array('首页','上一页','下一页','末页','$1/$2'));
*  
*  //输出分页版权保护,请不要随意复制^%#$32260)98sa。^_^,参数为当前页版权保护,请不要随意复制^%#$32260)98sa。^_^,整形大于0
*  echo  $mypage->getPage($curpage);
*/

/*供调用拷贝
$curpage  =  trim($_GET['page']);
if(!is_numeric($curpage))
    $curpage  =  1;
require_once('classPageMaker.php');
$mypage  =  new  PageMaker('testPageMaker.php',535,20,true,2,true,true);
$mypage->setQueryString('class=5&type=best');
$mypage->setPagestring(array('首页','上一页','下一页','末页','$1/$2'));
echo  $mypage->getPage($curpage);
*/

class  PageMaker
{
    
/**
    *  连接基本URL(不含任何参数)
    *
    *  @var  $baseurl  string
    */
    
private  $baseurl  =  '#';

    
/**
    *  数据总记录数量
    *
    *  @var  $totalcls  int
    */
    
private  $totalcls  =  0;

    
/**
    *  每页记录数量
    *
    *  @var  $pagesize  int
    */
    
private  $pagesize  =  1;

    
/**
    *  总页数
    *
    *  @var  $totalpage  int
    */
    
private  $totalpage  =  0;

    
/**
    *  是否显示文字链接(首页、上一页、下一页、末页等)
    *
    *  @var  $istext  bool
    */
    
private  $istext  =  true;

    
/**
    *  显示数字分页左右扩展数量版权保护,请不要随意复制^%#$32260)98sa。^_^,真实显示数量为  $number*2+1,0表示不显示数字分页
    *
    *  @var  $number  int
    */
    
private  $number  =  0;

    
/**
    *  是否显示下拉分页调整
    *
    *  @var  $isjump  bool
    */
    
private  $isjump  =  false;

    
/**
    *  是否显示统计信息  总多少页版权保护,请不要随意复制^%#$32260)98sa。^_^,当前多少页
    *
    *  @var  $isinfo  bool
    */
    
private  $isinfo  =  false;

    
/**
    *  URl参参数版权保护,请不要随意复制^%#$32260)98sa。^_^,除页数(page=1)以外
    *
    *  @var  $querystring  string
    */
    
private  $querystring  =  '';

    
/**
    *  文字分页字串版权保护,请不要随意复制^%#$32260)98sa。^_^,供自定义文字分页显示效果
    *
    *  @var  $pagestring  array
    */
    
private  $pagestring  =  array('首页','上一页','下一页','末页','第$1页/共$2页');

    
/**
    *  返回生产后的分页HTML代码
    *
    *  @var  $pages  string
    */
    
private  $pages  =  '';

    
/**
    *  构造函数
    *
    *  @param  string  $baseurl  基础URL,不带任何参数的链接地址
    *  @param  int  $totalcls  数据总数量版权保护,请不要随意复制^%#$32260)98sa。^_^,默认0
    *  @param  int  $pagesize  每页记录数量版权保护,请不要随意复制^%#$32260)98sa。^_^,默认1
    *  @param  bool  $istext  是否显示文本链接版权保护,请不要随意复制^%#$32260)98sa。^_^,默认false
    *  @param  int  $number  数字链接显示数量版权保护,请不要随意复制^%#$32260)98sa。^_^,默认0
    *  @param  bool  $isjump  是否显示跳转版权保护,请不要随意复制^%#$32260)98sa。^_^,默认false
    *  @param  bool  $isinfo  是否显示统计信息版权保护,请不要随意复制^%#$32260)98sa。^_^,默认false
    */
    
function  __construct($baseurl='',$totalcls=0,$pagesize=1,$istext=true,$number=0,$isjump=false,$isinfo=false)
    {
      
$this->baseurl  =  $baseurl;
      
$this->totalcls  =  (is_numeric($totalcls)  &&  $totalcls>0)  ?  $totalcls  :  0;
      
$this->pagesize  =  (is_numeric($pagesize)  &&  $pagesize>0)  ?  $pagesize  :  1;
      
$this->istext  =  (bool)$istext;
      
$this->number  =  (is_numeric($number))  ?  $number  :  0;
      
$this->isjump  =  (bool)$isjump;
      
$this->isinfo  =  (bool)$isinfo;
      
$this->totalpage  =  ceil($this->totalcls/$this->pagesize);
    }

    
/**
    *  设定链接参数,除页码参数以外。暂未做验证
    *
    *  @param  string  $querystring
    */
    
public  function  setQueryString($querystring)
    {
      
$this->querystring  =  $querystring;
    }

    
/**
    *  获取链接参数版权保护,请不要随意复制^%#$32260)98sa。^_^,除页码参数以外
    *
    *  @return  string
    */
    
public  function  getQueryString()
    {
      return  
$this->querystring;
    }

    
/**
    *  设置文本链接文字版权保护,请不要随意复制^%#$32260)98sa。^_^,参数为数组版权保护,请不要随意复制^%#$32260)98sa。^_^,如:array('首页','上一页','下一页','末页','第$1页/共$2页')版权保护,请不要随意复制^%#$32260)98sa。^_^,必选为5个元素
    *
    *  @param  array  $pagestring
    */
    
public  function  setPagestring($pagestring)
    {
      if(
is_array($pagestring)  &&  count($pagestring)==5)
      {
        
$this->pagestring  =  $pagestring;
      }
    }

    
/**
    *  生产分页HTML代码并返回
    *
    *  @param  int  $curpage  当前页
    *  @return  string  分页HTML代码
    */
    
public  function  getPage($curpage)
    {
      if(!
is_numeric($curpage)  ||  $curpage<1  ||  $curpage>$this->totalpage)
      {
        
$curpage  =  1;
      }

      if(
$this->totalpage<1)
      {
        
$this->pages  .=  '无记录';
      }
      else
      {
        
$this->pages  .=  '<div  id="page_box">';
        if(
$this->isinfo)
        {
            
$tempstr  =  str_replace('$1',$curpage,$this->pagestring[4]);
            
$tempstr  =  str_replace('$2',$this->totalpage,$tempstr);
            
$this->pages  .=  '<a  class="page_info">'.$tempstr.'</a>';
        }
        if(
$this->istext)
        {
            
$this->pages  .=  '<a  class="page_text  page_first"  href="'.$this->combinUrl(1).'">'.$this->pagestring[0].'</a>';
            if(
$curpage-1>0)
            {
              
$this->pages  .=  '<a  class="page_text  page_prev"  href="'.$this->combinUrl($curpage-1).'">'.$this->pagestring[1].'</a>';
            }
            else
            {
              
$this->pages  .=  '<a  class="page_text  page_prev">'.$this->pagestring[1].'</a>';
            }
        }
        if(
$this->number>0)
        {
            
$pmin  =  $curpage-$this->number;
            
$pmax  =  $curpage+$this->number;
            
$pagestart  =  ($pmin>0)  ?  $pmin  :  1;
            
$pageend  =  ($pmax<$this->totalpage)  ?  $pmax  :  $this->totalpage;

            for(
$i=$pagestart;  $i<=$pageend;  $i++)
            {
              if(
$i==$curpage)
              {
                
$this->pages  .=  '<a  class="page_number  page_curpage"  href="'.$this->combinUrl($i).'">'.$i.'</a>';
              }
              else
              {
                
$this->pages  .=  '<a  class="page_number"  href="'.$this->combinUrl($i).'">'.$i.'</a>';
              }
            }
        }
        if(
$this->istext)
        {
            if(
$curpage+1<=$this->totalpage)
            {
              
$this->pages  .=  '<a  class="page_text  page_next"  href="'.$this->combinUrl($curpage+1).'">'.$this->pagestring[2].'</a>';
            }
            else
            {
              
$this->pages  .=  '<a  class="page_text  page_next">'.$this->pagestring[2].'</a>';
            }
            
$this->pages  .=  '<a  class="page_text  page_last"  href="'.$this->combinUrl($this->totalpage).'">'.$this->pagestring[3].'</a>';
        }
        if(
$this->isjump)
        {
            
$this->pages  .=  '<select  id="page_jumper"  name="page_jumper"  onchange="javascript:pagejump(this.value);">';
            for(
$n=1;$n<=$this->totalpage;$n++)
            {
              
$sltstr  =  ($n==$curpage)  ?  'selected="selected"'  :  '';
              
$this->pages  .=  '<option  value="'.$this->combinUrl($n).'"  '.$sltstr.'>'.$n.'页</option>';
            }
            
$this->pages  .=  '</select>';
            
$this->pages  .=  '<script  type="text/javascript">function  pagejump(url){window.location.href  =  url;}</script>';
        }
        
$this->pages  .=  '</div>';
      }
      return  
$this->pages;
    }

    
/**
    *  内部辅助函数版权保护,请不要随意复制^%#$32260)98sa。^_^,拼接URL地址
    *
    *  @param  unknown_type  $pagenum
    *  @return  unknown
    */
    
private  function  combinUrl($pagenum)
    {
      
$url  =  $this->baseurl.'?page='.$pagenum;
      if(
$this->querystring  !=  '')
      {
        
$url  .=  '&'.$this->querystring;
      }
      return  
$url;
    }

    
/**
    *  析构函数
    */
    
function  __destruct()
    {
      unset(
$this->baseurl);
      unset(
$this->pagestring);
      unset(
$this->querystring);
    }
}
?>
版权保护版权保护,请不要随意复制^%#$32260)98sa。^_^,请不要随意复制^%#$32260)98sa。^_^
版权保护版权保护,请不要随意复制^%#$32260)98sa。^_^,请不要随意复制^%#$32260)98sa。^_^
testClassMaker.php 版权保护版权保护,请不要随意复制^%#$32260)98sa。^_^,请不要随意复制^%#$32260)98sa。^_^
版权保护版权保护,请不要随意复制^%#$32260)98sa。^_^,请不要随意复制^%#$32260)98sa。^_^
引用代码: <!DOCTYPE  html  PUBLIC  "-//W3C//DTD  XHTML  1.0  Transitional//EN"  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
html  xmlns="http://www.w3.org/1999/xhtml">
<
head>
<
meta  http-equiv="Content-Type"  content="text/html;  charset=gb2312"  />
<
title>PHP分页类测试</title>
<
style  type="text/css">
#page_box{float:left;}
#page_box  a{display:block;  font-size:12px;  height:18px;  line-height:18px;  text-decoration:none;  padding:0  5px;  margin:0  6px;  float:left;  border:#003399  1px  solid;  color:#333333;background-color:#FFFFFF;}
#page_box  a:hover{background-color:#0099FF;  color:#FFFFFF;}
#page_box  .page_info{}
#page_box  .page_text{}
#page_box  .page_first{}
#page_box  .page_prev{}
#page_box  .page_next{}
#page_box  .page_last{}
#page_box  .page_number{}
#page_box  .page_curpage{background-color:#003399;  color:#FFFFFF;  }
#page_box  #page_jumper{float:left;}
</style>
</
head>

<
body>
<?
php
$curpage  
=  trim($_GET['page']);
if(!
is_numeric($curpage))
    
$curpage  =  1;

require_once(
'classPageMaker.php');

echo  
'----------------调用示例一-----------------<br><br>';
$mypage  =  new  PageMaker('testPageMaker.php',61,30,true,2,true,true);
echo  
$mypage->getPage($curpage);

echo  
'<br><br>';
echo  
'<br><br>';

echo  
'----------------调用示例二-----------------<br><br>';
$mypage2  =  new  PageMaker('testPageMaker.php',522,30,true,2,true,true);
$mypage2->setQueryString('class=5&type=best');
$mypage2->setPagestring(array('|<','<<','>>','>|','$1/$2'));
echo  
$mypage2->getPage($curpage);

echo  
'<br><br>';
echo  
'<br><br>';

echo  
'----------------调用示例三-----------------<br><br>';
$mypage3  =  new  PageMaker('testPageMaker.php',522,30,true,2,false,false);
$mypage3->setQueryString('class=5&type=best');
$mypage3->setPagestring(array('|<','<<','>>','>|','$1/$2'));
echo  
$mypage3->getPage($curpage);

echo  
'<br><br>';
echo  
'<br><br>';

echo  
'----------------调用示例四-----------------<br><br>';
$mypage4  =  new  PageMaker('testPageMaker.php',5220,30,false,10,false,false);
$mypage4->setQueryString('class=5&type=best');
$mypage4->setPagestring(array('|<','<<','>>','>|','$1/$2'));
echo  
$mypage4->getPage($curpage);

echo  
'<br><br>';
echo  
'<br><br>';
?>
</body>
</html>

收藏此文章     打印  更新     编辑此文章    『关闭窗口』