当前位置:首页 > PHP教程 > php分页 > 列表

php自定义分页类完整实例

发布:smiling 来源: PHP粉丝网  添加日期:2021-07-01 22:59:24 浏览: 评论:0 

这篇文章主要介绍了php自定义分页类,以完整实例形式分析了php实现分页功能的原理与具体实现技巧,代码中有详细的注释便于理解,需要的朋友可以参考下,本文实例讲述了php自定义分页类,分享给大家供大家参考,具体如下:

  1. <?php 
  2. header("Content-type:text/html;Charset=utf-8"); 
  3. class SubPages{ 
  4.  private $each_disNums;//每页显示的条目数 
  5.  private $nums;//总条目数 
  6.  private $current_page;//当前被选中的页 
  7.  private $sub_pages;//每次显示的页数 
  8.  private $pageNums;//总页数 
  9.  private $page_array = array();//用来构造分页的数组 
  10.  private $subPage_link;//每个分页的链接 
  11.  //private $subPage_type;//显示分页的类型 
  12. /* 
  13.   当@subPage_type=1的时候为普通分页模式 
  14.      example:  共4523条记录,每页显示10条,当前第1/453页 [首页] [上页] [下页] [尾页] 
  15.      当@subPage_type=2的时候为经典分页样式 
  16.      example:  当前第1/453页 [首页] [上页] 1 2 3 4 5 6 7 8 9 10 [下页] [尾页] 
  17.  */ 
  18.  function __construct($each_disNums,$nums,$current_page,$sub_pages,$subPage_link){ 
  19.   $this->each_disNums=intval($each_disNums); 
  20.  $this->nums=intval($nums); 
  21.  if(!$current_page){ 
  22.  $this->current_page=1; 
  23.  }else
  24.    $this->current_page=intval($current_page); 
  25.   } 
  26.  $this->sub_pages=intval($sub_pages); 
  27.   $this->pageNums=ceil($nums/$each_disNums); 
  28.   $this->subPage_link=$subPage_link
  29.   // $this->show_SubPages($subPage_type); 
  30.  } 
  31.   // show_SubPages函数用在构造函数里面。而且用来判断显示什么样子的分页 
  32.  /* function show_SubPages($subPage_type){ 
  33.    if($subPage_type == 1){ 
  34.    $this->subPageCss1(); 
  35.    }else if ($subPage_type == 2){ 
  36.    $this->subPageCss2(); 
  37.    } 
  38.   } 
  39. */ 
  40.   //用来给建立分页的数组初始化的函数。 
  41.  function initArray(){ 
  42.    for($i=0;$i<$this->sub_pages;$i++){ 
  43.    $this->page_array[$i]=$i
  44.  } 
  45.    return $this->page_array; 
  46.   } 
  47.   /* construct_num_Page该函数使用来构造显示的条目 
  48.   即使:[1][2][3][4][5][6][7][8][9][10] */ 
  49.  function construct_num_Page(){ 
  50.   if($this->pageNums < $this->sub_pages){ 
  51.    $current_array=array(); 
  52.    for($i=0;$i<$this->pageNums;$i++){ 
  53.     $current_array[$i]=$i+1; 
  54.    } 
  55.    }else
  56.    $current_array=$this->initArray(); 
  57.    if($this->current_page <= 3){ 
  58.     for($i=0;$i<count($current_array);$i++){ 
  59.      $current_array[$i]=$i+1; 
  60.     } 
  61.    }else if ($this->current_page <= $this->pageNums && $this->current_page > $this->pageNums - $this->sub_pages + 1 ){ 
  62.     for($i=0;$i<count($current_array);$i++){ 
  63.      $current_array[$i]=($this->pageNums)-($this->sub_pages)+1+$i
  64.     } 
  65.    }else
  66.     for($i=0;$i<count($current_array);$i++){ 
  67.      $current_array[$i]=$this->current_page-2+$i
  68.     } 
  69.    } 
  70.   } 
  71.   return $current_array
  72.   } 
  73.  /* 
  74.   构造普通模式的分页 
  75.   共4523条记录,每页显示10条,当前第1/453页 [首页] [上页] [下页] [尾页] 
  76.   */ 
  77.  function subPageCss1(){ 
  78.   $subPageCss1Str=""
  79.   $subPageCss1Str.="共".$this->nums."条记录,"
  80.   $subPageCss1Str.="每页显示".$this->each_disNums."条,"
  81.   $subPageCss1Str.="当前第".$this->current_page."/".$this->pageNums."页 "
  82.   if($this->current_page > 1){ 
  83.    $firstPageUrl=$this->subPage_link."1"
  84.    $prewPageUrl=$this->subPage_link.($this->current_page-1); 
  85.    $subPageCss1Str.="[<a href='$firstPageUrl'>首页</a>] "
  86.    $subPageCss1Str.="[<a href='$prewPageUrl'>上一页</a>] "
  87.   }else { 
  88.    $subPageCss1Str.="[首页] "
  89.    $subPageCss1Str.="[上一页] "
  90.   } 
  91.   if($this->current_page < $this->pageNums){ 
  92.    $lastPageUrl=$this->subPage_link.$this->pageNums; 
  93.    $nextPageUrl=$this->subPage_link.($this->current_page+1); 
  94.    $subPageCss1Str.=" [<a href='$nextPageUrl'>下一页</a>] "
  95.    $subPageCss1Str.="[<a href='$lastPageUrl'>尾页</a>] "
  96.   }else { 
  97.    $subPageCss1Str.="[下一页] "
  98.    $subPageCss1Str.="[尾页]"
  99.   } 
  100.   return $subPageCss1Str//在此可以设置显示的CSS样式 
  101.   } 
  102.  /* 
  103.   构造经典模式的分页 
  104.   当前第1/453页 [首页] [上页] 1 2 3 4 5 6 7 8 9 10 [下页] [尾页] 
  105.   */ 
  106.  function subPageCss2(){ 
  107.   $subPageCss2Str=""
  108.   $subPageCss2Str.="当前第".$this->current_page."/".$this->pageNums."页 "
  109.  if($this->current_page > 1){ 
  110.    $firstPageUrl=$this->subPage_link."1"
  111.    $prewPageUrl=$this->subPage_link.($this->current_page-1); 
  112.    $subPageCss2Str.="[<a href='$firstPageUrl'>首页</a>] "
  113.    $subPageCss2Str.="[<a href='$prewPageUrl'>上一页</a>] "
  114.   }else { 
  115.    $subPageCss2Str.="[首页] "
  116.    $subPageCss2Str.="[上一页] "
  117.   } 
  118.  $a=$this->construct_num_Page(); 
  119.   for($i=0;$i<count($a);$i++){ 
  120.    $s=$a[$i]; 
  121.    if($s == $this->current_page ){ 
  122.     $subPageCss2Str.="[<span style='color:red;font-weight:bold;'>".$s."</span>]"
  123.    }else
  124.     $url=$this->subPage_link.$s
  125.     $subPageCss2Str.="[<a href='$url'>".$s."</a>]"
  126.    } 
  127.   } 
  128.   if($this->current_page < $this->pageNums){ 
  129.    $lastPageUrl=$this->subPage_link.$this->pageNums; 
  130.    $nextPageUrl=$this->subPage_link.($this->current_page+1); 
  131.    $subPageCss2Str.=" [<a href='$nextPageUrl'>下一页</a>] "
  132.    $subPageCss2Str.="[<a href='$lastPageUrl'>尾页</a>] "
  133.   }else { 
  134.    $subPageCss2Str.="[下一页] "
  135.    $subPageCss2Str.="[尾页] "
  136.   } 
  137.   return $subPageCss2Str
  138.   } 
  139. //使用如下 
  140. /*include('../mysql.php'); 
  141. //每页显示的条数 
  142.  $page_size=3; 
  143. //总条目数 
  144. $sql=mysql_query("select * from `stu_info`"); 
  145. $nums=mysql_num_rows($sql); 
  146. //每次显示的页数 
  147.  $sub_pages=10; 
  148. //得到当前是第几页 
  149.  if(!isset($_GET["p"])){ 
  150.  $pageCurrent=1; 
  151.  }else{ 
  152.   $pageCurrent=$_GET["p"]; 
  153.  } 
  154.  $subPages=new SubPages($page_size,$nums,$pageCurrent,$sub_pages,"page.php?p="); 
  155.  $page=$subPages->subPageCss2(); 
  156.  echo $page;//在此可以设置CSS样式 
  157.  $ss=mysql_query("select * from `stu_info` limit ".$page_size*($pageCurrent-1).",".$page_size); 
  158.  while($row=mysql_fetch_array($ss)){ 
  159.  echo $row['stunum'].''.$row['stuname'].''.$row['clanum'].'<br>'; 
  160.  }*/ 
  161. ?> 

希望本文所述对大家PHP程序设计有所帮助。

Tags: php自定义分页类

分享到: