Heim  >  Artikel  >  php教程  >  php 经典的分页代码类

php 经典的分页代码类

WBOY
WBOYOriginal
2016-06-13 11:24:38974Durchsuche

php 经典的分页代码类 这是一款php分页代码是一款经典的可自动判断url参数再进行分页的实例代码,同时自定了上页,下页,首页,尾页哦,同时还支持select下拉框跳转代码。

php教程 经典的分页代码类
 这是一款php分页代码是一款经典的可自动判断url参数再进行分页的实例代码,同时自定了上页,下页,首页,尾页哦,同时还支持select下拉框跳转代码。
*/

class page{

 var $page_name="page";

 var $next_page='下一页';

 var $pre_page='上一页';

 var $first_page='首页';

 var $last_page='尾页';

 var $pre_bar='

 var $next_bar='>>';

 var $format_left='';

 var $format_right='';

 var $pagebarnum=5;

 var $totalpage=0;

 var $nowindex=1;

 var $url="";

 var $offset=0;

 var $rewrite = array();


 function page($array)

 {

  if(is_array($array)){

     if(!array_key_exists('total',$array))$this->error(__function__,'need a param of total');

     $total=intval($array['total']);

     $perpage=(array_key_exists('perpage',$array))?intval($array['perpage']):10;

     $nowindex=(array_key_exists('nowindex',$array))?intval($array['nowindex']):'';

     $url=(array_key_exists('url',$array))?$array['url']:'';

     $action = (array_key_exists('action', $array)) ? $array['action'] : '';
     $id0 = (array_key_exists('id0', $array)) ? $array['id0'] : '';
  $id1 = (array_key_exists('id1', $array)) ? $array['id1'] : '';
  $id2 = (array_key_exists('id2', $array)) ? $array['id2'] : '';
  $id3 = (array_key_exists('id3', $array)) ? $array['id3'] : '';

  }else{

     $total=$array;

     $perpage=10;

     $nowindex='';

     $url='';

     $action = '';
     $id0 = '';
     $id1 = '';
     $id2 = '';
  $id3 = '';

  }

  if((!is_int($total))||($totalerror(__function__,$total.' is not a positive integer!');

  if((!is_int($perpage))||($perpageerror(__function__,$perpage.' is not a positive integer!');

  if(!empty($array['page_name']))$this->set('page_name',$array['page_name']);

  $this->_set_nowindex($nowindex);

  $this->_set_url($url);

  $this->totalpage=ceil($total/$perpage);

  $this->offset=($this->nowindex-1)*$perpage;

  $this->action = $action;
  $this->rewrite = array('action'=>$action,'id0'=>$id0, 'id1'=>$id1, 'id2'=>$id2, 'id3'=>$id3);
 }

 function set($var,$value)
 {

  if(in_array($var,get_object_vars($this)))

     $this->$var=$value;

  else {

   $this->error(__function__,$var." does not belong to pb_page!");

  }

 }

 function next_page($style=''){
  if($this->nowindextotalpage){
  return $this->_get_link($this->_get_url($this->nowindex+1),$this->next_page,$style);
 }
 return ''.$this->next_page.'';
 }

 function pre_page($style=''){
  if($this->nowindex>1){
    return $this->_get_link($this->_get_url($this->nowindex-1),$this->pre_page,$style);
  }
  return ''.$this->pre_page.'';
 }

 function first_page($style=''){
  if($this->nowindex==1){
     return ''.$this->first_page.'';
  }
  return $this->_get_link($this->_get_url(1),$this->first_page,$style);
 }

 function last_page($style=''){
  if($this->nowindex==$this->totalpage||$this->totalpage==0){

      return ''.$this->last_page.'';

  }

  return $this->_get_link($this->_get_url($this->totalpage),$this->last_page,$style);

 }


 function nowbar($style='',$nowindex_style='')

 {

  $plus=ceil($this->pagebarnum/2);

  if($this->pagebarnum-$plus+$this->nowindex>$this->totalpage)$plus=($this->pagebarnum-$this->totalpage+$this->nowindex);

  $begin=$this->nowindex-$plus+1;

  $begin=($begin>=1)?$begin:1;

  $return='';

  for($i=$begin;$ipagebarnum;$i++)

  {

   if($itotalpage){

    if($i!=$this->nowindex)

        $return.=$this->_get_text($this->_get_link($this->_get_url($i),$i,$style));

    else

        $return.=$this->_get_text(''.$i.'');

   }else{

    break;

   }

   $return.="n";

  }

  unset($begin);

  return $return;

 }

 /**

  * 获取显示跳转按钮的代码

  *

  * @return string

  */

 function select()

 {

   $return='

  for($i=1;$itotalpage;$i++)

  {

   if($i==$this->nowindex){

    $return.='';

   }else{

    $return.='';

   }

  }

  unset($i);


  $return.='';

  return $return;

 }

 

 /**

  * 获取mysql教程 语句中limit需要的值

  *

  * @return string

  */

 function offset()

 {

  return $this->offset;

 }

 

 /**

  * 控制分页显示风格(你可以增加相应的风格)

  *

  * @param int $mode

  * @return string

  */

 function show($mode=1)

 {

  switch ($mode)

  {

   case '1':

    $this->next_page='下一页';

    $this->pre_page='上一页';

    return $this->pre_page().$this->nowbar().$this->next_page().'第'.$this->select().'页';

    break;

   case '2':

    $this->next_page='下一页';

    $this->pre_page='上一页';

    $this->first_page='首页';

    $this->last_page='尾页';

    return $this->first_page().$this->pre_page().'[第'.$this->nowindex.'页]'.$this->next_page().$this->last_page().'第'.$this->select().'页';

    break;

   case '3':

    $this->next_page='下一页';

    $this->pre_page='上一页';

    $this->first_page='首页';

    $this->last_page='尾页';

    return $this->first_page("page_box")."".$this->pre_page("page_box")."".$this->nowbar("page_box_a","page_box_b")."".$this->next_page("page_box")."".$this->last_page("page_box")."";

    break;

   case '4':

    $this->next_page='下一页';

    $this->pre_page='上一页';

    return $this->pre_page().$this->nowbar().$this->next_page();

    break;

   case '5':

    return $this->pre_bar().$this->pre_page().$this->nowbar().$this->next_page().$this->next_bar();

    break;

  }

 

 }

 function _set_url($url="")

 {

  if(!empty($url)){

   $this->url=$url.((stristr($url,'?'))?'&':'?').$this->page_name."=";

  }else{

   if(empty($_server['query_string'])){

    $this->url=$_server['request_uri']."?".$this->page_name."=";

   }else{

    if(stristr($_server['query_string'],$this->page_name.'=')){

     $this->url=str_replace($this->page_name.'='.$this->nowindex,'',$_server['request_uri']);

     $last=$this->url[strlen($this->url)-1];

     if($last=='?'||$last=='&'){

         $this->url.=$this->page_name."=";

     }else{

         $this->url.='&'.$this->page_name."=";

     }

    }else{

     $this->url=$_server['request_uri'].'&'.$this->page_name.'=';

    }

   }

  }

 }


 function _set_nowindex($nowindex)

 {

  if(empty($nowindex)){

   if(isset($_get[$this->page_name])){

    $this->nowindex=intval($_get[$this->page_name]);

   }

  }else{

   $this->nowindex=intval($nowindex);

  }

 }

 function _get_url($pageno=1)
 {
  global $_cfg;
  $arr = $this->rewrite;
 //print_r($arr);
 //print_r($this->url.$pageno);
  if($_cfg['urlrewrite'] && !empty($arr['action'])){
   return url_rewrite($arr['action'], array('id0'=>$arr['id0'],'id1'=>$arr['id1'],'id2'=>$arr['id2'],'id3'=>$arr['id3'],'page'=>$pageno));
  }else{
   return $this->url.$pageno;
  }

 }

 function _get_text($str)

 {

  return $this->format_left.$str.$this->format_right;

 }

 function _get_link($url,$text,$style=''){

  $style=(empty($style))?'':'class="'.$style.'"';

  return ''.$text.'';

 }


 function error($function,$errormsg)

 {

     die('error in file '.__file__.' ,function '.$function.'() :'.$errormsg);

 }

}
?>


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn