Home > php教程 > php手册 > body text

php 经典的分页代码类

WBOY
Release: 2016-06-13 11:24:38
Original
972 people have browsed it

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

 }

}
?>


source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Recommendations
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!