php自己写的分页类:::>>>

<?php
///翻页类

class pages {

    /**
     * 页面输出结果
     *
     * @var string
     */
 var $output;

    /**
     * 使用该类的文件,默认为 PHP_SELF
     *
     * @var string
     */
 var $file;

    /**
     * 页数传递变量,默认为 'p'
     *
     * @var string
     */
 var $pvar = "page";

    /**
     * 页面大小
     *
     * @var integer
     */
 var $psize;

    /**
     * 当前页面
     *
     * @var ingeger
     */
 var $curr;

    /**
     * 要传递的变量数组
     *
     * @var array
     */

 var $varstr;

    /**
     * 总页数
     *
     * @var integer
     */
    var $tpage;

    /**
     * 分页设置
     *
     * @access public
     * @param int $pagesize 页面大小
     * @param int $total    总记录数
     * @param int $current  当前页数,默认会自动读取
     * @return void
     */
    function set($pagesize=20,$total,$current=false) {

  global $HTTP_SERVER_VARS,$HTTP_GET_VARS,$htmlstr,$MenuInfo;

  $this->total = $total;
  $this->tpage = ceil($total/$pagesize);
  

  if (!$current) {$current = $HTTP_GET_VARS[$this->pvar];}
  if ($current>$this->tpage) {$current = $this->tpage;}
  if ($current<1) {$current = 1;}

  $this->curr  = $current;
  $this->psize = $pagesize;

  if (!$this->file) {$this->file = $HTTP_SERVER_VARS['PHP_SELF'];}
  
   if ($this->tpage > 0) {
              $this->output.="<table cellspacing=1><tr>";
   if ($current>10) {
    $this->output.='<td ><a class=pages href='.$this->file.'?'.$this->pvar.'='.($current-10).($this->varstr).' title=""><img src='.ROOTPATH.'templates/'.$MenuInfo["skin"].'/images/2arrow_l_on.gif border=0></a></td>';
   }else{
    $this->output.='<td  ><img src='.ROOTPATH.'templates/'.$MenuInfo["skin"].'/images/2arrow_l_off.gif border=0></td>';
   
   }
            if ($current>1) {
   $this->output.='<td  ><a  class=pages href='.$this->file.'?'.$this->pvar.'='.($current-1).($this->varstr).' title=""><img src='.ROOTPATH.'templates/'.$MenuInfo["skin"].'/images/1arrow_l_on.gif border=0></a></td><td width=3></td>';
   }else{
   $this->output.='<td  ><img src='.ROOTPATH.'templates/'.$MenuInfo["skin"].'/images/1arrow_l_off.gif border=0></td><td width=3></td>';
   
   }
     if(floor($current/10)==$current/10){
       $start = floor($current/10)*10-9;
     }else{
             $start = floor($current/10)*10+1;    
     }

           
            $end = $start+9;
     if ($start<1)   {$start=1;}
            if ($end>$this->tpage) {$end=$this->tpage;}

            for ($i=$start; $i<=$end; $i++) {
                if ($current==$i) {
                    $this->output.='<td class=pagesnow><b>['.$i.']</b></td>';   
                } else {
                    $this->output.='<td class=pages ><b>[<a class=pages  href='.$this->file.'?'.$this->pvar.'='.$i.$this->varstr.'><b>'.$i.'</b></a>]<b></td>';   
                }
            }

            if ($current<$this->tpage) {
    $this->output.='<td width=3></td><td style="padding-left:3px;padding-right:3px"><a  href='.$this->file.'?'.$this->pvar.'='.($current+1).($this->varstr).' ><img src='.ROOTPATH.'templates/'.$MenuInfo["skin"].'/images/1arrow_r_on.gif border=0></a></td>';
   }else{
    $this->output.='<td width=3></td><td><img src='.ROOTPATH.'templates/'.$MenuInfo["skin"].'/images/1arrow_r_off.gif border=0></td>';
   
   }
            if ($this->tpage>10 && ($this->tpage-$current)>=10 ) {
    $this->output.='<td><a  href='.$this->file.'?'.$this->pvar.'='.($current+10).($this->varstr).' ><img src='.ROOTPATH.'templates/'.$MenuInfo["skin"].'/images/2arrow_r_on.gif border=0></a></td>';
     }else{
    $this->output.='<td><img src='.ROOTPATH.'templates/'.$MenuInfo["skin"].'/images/2arrow_r_off.gif border=0></td>';
    
    
     }
    
     $this->output.="</tr></table>";
     }
 }

    /**
     * 要传递的变量设置
     *
     * @access public
     * @param array $data   要传递的变量,用数组来表示,参见上面的例子
     * @return void
     */ 
 function setvar($data) {
  foreach ($data as $k=>$v) {
   $this->varstr.='&amp;'.$k.'='.urlencode($v);
  }
 }

    /**
     * 分页结果输出
     *
     * @access public
     * @param bool $return 为真时返回一个字符串,否则直接输出,默认直接输出
     * @return string
     */
 function output($return = false) {
  if ($return) {
   return $this->output;
  } else {
   echo $this->output;
  }
 }

    /**
     * 生成Limit语句
     *
     * @access public
     * @return string
     */
    function limit() {
  return (($this->curr-1)*$this->psize).','.$this->psize;
 }
    function ShowNow() {

  global $strPagesTotalStart,$strPagesTotalEnd,$strPagesNowPagesFrom,$strPagesNowPagesTo,$strPagesNowListFrom,$strPagesNowListTo,$strNoRecode;
  global $sLan,$strPagesResaults,$strPagesOf;

  if($sLan=="zh_cn" || $sLan=="zh_tw"){
   if($this->total>0){
    if($this->total<=($this->curr-1)*$this->psize+$this->psize){
     return  $strPagesTotalStart.$this->total.$strPagesTotalEnd.' '.$strPagesNowPagesFrom.$this->curr.$strPagesNowPagesTo.' '.$strPagesNowListFrom.(($this->curr-1)*$this->psize+1).'-'.$this->total.$strPagesNowListTo;
    }else{
     return  $strPagesTotalStart.$this->total.$strPagesTotalEnd.' '.$strPagesNowPagesFrom.$this->curr.$strPagesNowPagesTo.' '.$strPagesNowListFrom.(($this->curr-1)*$this->psize+1).'-'.(($this->curr-1)*$this->psize+$this->psize).$strPagesNowListTo;
    }
   }else{
    return  $strNoRecode;
   }
  }else{
   if($this->total>0){
    if($this->total<=($this->curr-1)*$this->psize+$this->psize){
     return $strPagesResaults.' '.(($this->curr-1)*$this->psize+1).'-'.$this->total.$strPagesOf.' '.$this->total;
    }else{
     return $strPagesResaults.' '.(($this->curr-1)*$this->psize+1).'-'.(($this->curr-1)*$this->psize+$this->psize).$strPagesOf.' '.$this->total;
    }
   }else{
    return  $strNoRecode;
   }

  }

 }
}
?>

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值