`
yeahfeng
  • 浏览: 17356 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

【转】简单,方便,功能全的php分页类

    博客分类:
  • PHP
阅读更多

分页类:

 

<?php  
class SubPages{  
     
   private  $each_disNums;//每页显示的条目数  
  private  $nums;//总条目数  
  private  $current_page;//当前被选中的页  
  private  $sub_pages;//每次显示的页数  
  private  $pageNums;//总页数  
  private  $page_array = array();//用来构造分页的数组  
  private  $subPage_link;//每个分页的链接  
  private  $subPage_type;//显示分页的类型  
   /* 
   __construct是SubPages的构造函数,用来在创建类的时候自动运行. 
   @$each_disNums   每页显示的条目数 
   @nums     总条目数 
   @current_num     当前被选中的页 
   @sub_pages       每次显示的页数 
   @subPage_link    每个分页的链接 
   @subPage_type    显示分页的类型 
    
   当@subPage_type=1的时候为普通分页模式 
         example:   共4523条记录,每页显示10条,当前第1/453页 [首页] [上页] [下页] [尾页] 
         当@subPage_type=2的时候为经典分页样式 
         example:   当前第1/453页 [首页] [上页] 1 2 3 4 5 6 7 8 9 10 [下页] [尾页] 
   */ 
  function __construct($each_disNums,$nums,$current_page,$sub_pages,$subPage_link,$subPage_type){  
   $this->each_disNums=intval($each_disNums);  
   $this->nums=intval($nums);  
    if(!$current_page){  
    $this->current_page=1;  
    }else{  
    $this->current_page=intval($current_page);  
    }  
   $this->sub_pages=intval($sub_pages);  
   $this->pageNums=ceil($nums/$each_disNums);  
   $this->subPage_link=$subPage_link;   
   $this->show_SubPages($subPage_type);   
   //echo $this->pageNums."--".$this->sub_pages;  
  }  
     
     
  /* 
    __destruct析构函数,当类不在使用的时候调用,该函数用来释放资源。 
   */ 
  function __destruct(){  
    unset($each_disNums);  
    unset($nums);  
    unset($current_page);  
    unset($sub_pages);  
    unset($pageNums);  
    unset($page_array);  
    unset($subPage_link);  
    unset($subPage_type);  
   }  
     
  /* 
    show_SubPages函数用在构造函数里面。而且用来判断显示什么样子的分页   
   */ 
  function show_SubPages($subPage_type){  
    if($subPage_type == 1){  
    $this->subPageCss1();  
    }elseif ($subPage_type == 2){  
    $this->subPageCss2();  
    }  
   }  
     
     
  /* 
    用来给建立分页的数组初始化的函数。 
   */ 
  function initArray(){  
    for($i=0;$i<$this->sub_pages;$i++){  
    $this->page_array[$i]=$i;  
    }  
    return $this->page_array;  
   }  
     
     
  /* 
    construct_num_Page该函数使用来构造显示的条目 
    即使:[1][2][3][4][5][6][7][8][9][10] 
   */ 
  function construct_num_Page(){  
    if($this->pageNums < $this->sub_pages){  
    $current_array=array();  
     for($i=0;$i<$this->pageNums;$i++){   
     $current_array[$i]=$i+1;  
     }  
    }else{  
    $current_array=$this->initArray();  
     if($this->current_page <= 3){  
      for($i=0;$i<count($current_array);$i++){  
      $current_array[$i]=$i+1;  
      }  
     }elseif ($this->current_page <= $this->pageNums && $this->current_page > $this->pageNums - $this->sub_pages + 1 ){  
      for($i=0;$i<count($current_array);$i++){  
      $current_array[$i]=($this->pageNums)-($this->sub_pages)+1+$i;  
      }  
     }else{  
      for($i=0;$i<count($current_array);$i++){  
      $current_array[$i]=$this->current_page-2+$i;  
      }  
     }  
    }  
      
    return $current_array;  
   }  
     
  /* 
   构造普通模式的分页 
   共4523条记录,每页显示10条,当前第1/453页 [首页] [上页] [下页] [尾页] 
   */ 
  function subPageCss1(){  
   $subPageCss1Str="";  
   $subPageCss1Str.="共".$this->nums."条记录,";  
   $subPageCss1Str.="每页显示".$this->each_disNums."条,";  
   $subPageCss1Str.="当前第".$this->current_page."/".$this->pageNums."页 ";  
    if($this->current_page > 1){  
    $firstPageUrl=$this->subPage_link."1";  
    $prewPageUrl=$this->subPage_link.($this->current_page-1);  
    $subPageCss1Str.="[<a href='$firstPageUrl'>首页</a>] ";  
    $subPageCss1Str.="[<a href='$prewPageUrl'>上一页</a>] ";  
    }else {  
    $subPageCss1Str.="[首页] ";  
    $subPageCss1Str.="[上一页] ";  
    }  
      
    if($this->current_page < $this->pageNums){  
    $lastPageUrl=$this->subPage_link.$this->pageNums;  
    $nextPageUrl=$this->subPage_link.($this->current_page+1);  
    $subPageCss1Str.=" [<a href='$nextPageUrl'>下一页</a>] ";  
    $subPageCss1Str.="[<a href='$lastPageUrl'>尾页</a>] ";  
    }else {  
    $subPageCss1Str.="[下一页] ";  
    $subPageCss1Str.="[尾页] ";  
    }  
      
    echo $subPageCss1Str;  
      
   }  
     
     
  /* 
   构造经典模式的分页 
   当前第1/453页 [首页] [上页] 1 2 3 4 5 6 7 8 9 10 [下页] [尾页] 
   */ 
  function subPageCss2(){  
   $subPageCss2Str="";  
   $subPageCss2Str.="当前第".$this->current_page."/".$this->pageNums."页 ";  
      
      
    if($this->current_page > 1){  
    $firstPageUrl=$this->subPage_link."1";  
    $prewPageUrl=$this->subPage_link.($this->current_page-1);  
    $subPageCss2Str.="[<a href='$firstPageUrl'>首页</a>] ";  
    $subPageCss2Str.="[<a href='$prewPageUrl'>上一页</a>] ";  
    }else {  
    $subPageCss2Str.="[首页] ";  
    $subPageCss2Str.="[上一页] ";  
    }  
      
   $a=$this->construct_num_Page();  
    for($i=0;$i<count($a);$i++){  
    $s=$a[$i];  
     if($s == $this->current_page ){  
     $subPageCss2Str.="[<span style='color:red;font-weight:bold;'>".$s."</span>]";  
     }else{  
     $url=$this->subPage_link.$s;  
     $subPageCss2Str.="[<a href='$url'>".$s."</a>]";  
     }  
    }  
      
    if($this->current_page < $this->pageNums){  
    $lastPageUrl=$this->subPage_link.$this->pageNums;  
    $nextPageUrl=$this->subPage_link.($this->current_page+1);  
    $subPageCss2Str.=" [<a href='$nextPageUrl'>下一页</a>] ";  
    $subPageCss2Str.="[<a href='$lastPageUrl'>尾页</a>] ";  
    }else {  
    $subPageCss2Str.="[下一页] ";  
    $subPageCss2Str.="[尾页] ";  
    }  
    echo $subPageCss2Str;  
   }  
}  
?>
 

 

演示代码:

 

<?php  
require_once("SubPages.php");  
//每页显示的条数  
  $page_size=20;  
//总条目数  
  $nums=1024;  
//每次显示的页数  
  $sub_pages=10;  
//得到当前是第几页  
  $pageCurrent=$_GET["p"];  
  //if(!$pageCurrent) $pageCurrent=1;  
     
  $subPages=new SubPages($page_size,$nums,$pageCurrent,$sub_pages,"test.php?p=",2);  
?>
 
分享到:
评论

相关推荐

    简单_方便_功能全的php分页类

    根据给定的信息,本文将对一个“简单、方便、功能全”的PHP分页类进行详细的解析,包括其构造方法、属性、以及如何实现分页显示的功能。通过本篇内容,您将了解到该类的设计思想、核心函数的工作原理,以及如何在...

    简单,方便,功能全的php分页类.zip

    一个简单,方便,功能全的php分页类,每页显示的条目数,总条目数,当前被选中的页,每次显示的页数,用来构造分页的数组,每个分页的链接,显示分页的类型。    

    PHP分页类方便使用简单易读

    本篇文章将详细介绍一个名为"pages.php"的PHP分页类,它以其简单易用的特点,为开发者提供了一个快速实现分页功能的解决方案。 首先,我们来理解一下"pages.php"分页类的基本结构。此类通常会包含以下几个核心部分...

    简单实用的PHP分页类

    本文将详细介绍一个自编的简单实用PHP分页类,并探讨其核心概念和实现方式。 首先,PHP分页类的主要目标是简化在数据库查询中实现分页的代码,提供友好的接口来控制每页显示多少条记录以及如何导航到不同页面。这个...

    简单实用的PHP分页类.rar

    本资源“简单实用的PHP分页类.rar”提供了一个经典的PHP分页类,它可以帮助开发者轻松实现网页上的数据分页功能。下面我们将详细探讨PHP分页的基本原理、分页类的实现以及如何使用此类。 1. PHP分页基本原理: ...

    超强php分页类

    综上所述,"超强php分页类"提供了一个完整的解决方案,不仅包含分页逻辑,还集成了数据库操作和配置读取,使得在PHP项目中实现分页变得简单易行。对于有一定PHP基础的开发者来说,通过阅读类中的详细注释和说明,...

    PHP简单漂亮的分页类.zip

    PHP分页类通常会根据数据库查询结果的总数量和每页显示的数据条数来计算总的页数。然后,它会生成相应的HTML代码,以链接的形式呈现分页导航,让用户可以轻松跳转到不同的页面。 这个“PHP简单漂亮的分页类”应该...

    PHP分页类集锦

    这个“PHP分页类集锦”提供了一个自定义的分页类示例,帮助开发者实现简单的分页功能。 分页类的工作原理: 分页类的主要任务是计算总页数、当前页数,并生成用于导航的页码索引条。在这个例子中,类名为`Page`,它...

    PHP超强分页类

    通过这个强大的PHP分页类,开发者可以快速地为网站或应用添加高质量的分页功能,无需从头编写复杂的分页逻辑。同时,由于其灵活性,即使对于有特殊设计要求的项目,也能轻松应对。只需遵循`readme.txt`的指导,便能...

    功能最全的php分页技术

    本资源"功能最全的php分页技术"提供了一种全面且强大的PHP分页解决方案。 首先,我们来了解一下PHP分页的基本概念。分页主要是通过查询数据库并限制返回结果的数量,然后通过导航链接让用户在不同数据块间切换。...

    一个功能比较齐全的分页类库.zip

    1. **下载解压**:首先下载提供的"一个功能比较高的分页类(for PHP5.x)"文件,解压到你的项目目录中。 2. **引入类库**:在需要使用分页功能的PHP文件中,引入分页类库的文件,并实例化分页对象。 3. **配置参数**...

    PHP简单漂亮的分页类

    该PHP分页类可能会包含以下关键功能: 1. **初始化参数**:类的实例化时,需要传入总记录数、每页显示的记录数、当前页数等基本信息。这些参数对于计算分页链接至关重要。 2. **计算总页数**:根据总记录数和每页...

    php 万能分页类.zip

    在PHP中,一个分页类通常是一个自定义的类,它封装了计算总页数、生成分页链接以及处理当前页码等逻辑,使得开发者可以更方便地在项目中实现分页功能。PHP万能分页类就是这样一个通用性强、易于使用的分页解决方案。...

    轻松PHP网站分页类

    在实际应用中,一个简单的PHP分页类可能如下所示: ```php class Pagination { private $total_rows; private $per_page; private $current_page; public function __construct($total_rows, $per_page, $...

    简单的PHP分页函数类.zip

    1. **引入类**:将分页函数类的文件(在这个例子中是"简单的PHP分页函数类.php")引入到需要分页功能的PHP文件中。 2. **实例化类**:创建类的实例,并传入必要的参数,如每页显示的数据条数,当前页码等。 3. **...

    一个用PHP写的分页类

    用PHP实现了网站开发中常用的分页功能。并且实现了很好的封装哦!使用起来简单方便啦

    通用PHP分页组件

    4. 轻松集成:由于其通用性,该组件可以无缝集成到任何PHP项目中,无论是基于MVC框架还是简单的PHP脚本,只需简单引入并调用相应的函数或类,即可实现分页功能。 5. 性能优化:一个好的分页组件还会考虑到性能,...

    php如何分页为什么需要分页类来处理分页

    首先,让我们看看在不使用分页类的情况下,如何实现简单的分页。基本思路是通过SQL查询限制返回的数据量,结合前端页面的页码控制,实现数据的分段显示。例如,我们可以通过以下步骤实现: 1. 计算总记录数:使用`...

    简单的php分页类库.zip

    这个“简单的php分页类库”提供了一个便捷的方式来实现这一功能。下面我们将详细探讨这个类库的使用方法、核心原理以及如何将其应用于实际项目。 首先,这个类库的核心思想是封装了数据库查询和HTML分页链接的生成...

    php数据库分页功能实现

    3. **PHP分页导航链接生成** - 在实际应用中,除了显示数据外,还需要为用户提供方便的页面跳转功能。 - 通过循环生成每个页面的链接,用户点击后可以通过URL参数改变当前页面。 - 示例代码: ```php for ($i =...

Global site tag (gtag.js) - Google Analytics