php分页类 可直接调用

/*
$num = 130 总条目数
"?p="        host 后面的query
2            分页模式【1,2】
*/
//调用实例
$nums=130;//总条目数
$subPages=new SubPages($nums,"?p=",2);

class SubPages{  

    private  $each_disNums = 15;//每页显示的条目数
    private  $nums;//总条目数
    private  $current_page = 1;//当前被选中的页
    private  $sub_pages = 10;//每次显示的页数
    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($nums,$subPage_link,$subPage_type){
        $this->nums=intval($nums);
        if(isset($_GET["p"])){
            $this->current_page=intval($_GET["p"]);
        }
        $this->pageNums=ceil($nums/$this->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);
    }

    /*
    setEachDisNums 设置每页的显示的个数
    */
    public function setEachDisNums($each_disNums){
        $this->each_disNums = intval($each_disNums);
    }

    /*
    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;
    }
}
时间: 2024-10-15 17:27:43

php分页类 可直接调用的相关文章

php分页类的二种调用方法(转载)

php分页类的二种调用方法 原文地址:http://www.xfcodes.com/php/fenye/25584.htm 导读:php分页类的二种调用用法,ajax调用php分页类,非ajax方式调用php分页类,自定义分页显示模式,允许设置是否支持AJAX分页模式. php分页类的二种调用方法 1,ajax调用php分页类: //$total,总数(int):$size,每页显示数量(int):$page,当前页(int),$url,链接(string):ajax,js函数名:$page =

thinkphp3.2数组调用tp分页类进行分页

先上function中封装的函数 <?php function get_page($arr,$p,$pageSize) { import("Think.Page"); //导入分页类 $count = count($arr); $Page = new Think\Page($count,$pageSize); $start=($p- 1) *$pageSize; $length= $pageSize; $page_count=ceil($count/$pageSize); $cu

php分页类

<?php /** file: page.class.php 完美分页类 Page */ class Page { private $total; //数据表中总记录数 private $listRows; //每页显示行数 private $limit; //SQL语句使用limit从句,限制获取记录个数 private $uri; //自动获取url的请求地址 private $pageNum; //总页数 private $page; //当前页 private $config = arr

thinkphp简洁、美观、靠谱的分页类

废话不多说先上图预览下:即本博客的分页: 这个分页类是在thinkphp框架内置的分页类的基础上修改而来: 原分页类的一些设计,在实际运用中感觉不是很方便: 1:只有一页内容时不显示分页: 2:原分页类在当前页是第一页和最后一页的时候,不显示第一页和最后一页的按钮: 3:分页数比较少时不显示首页和末页按钮: 4:包裹分页内容的父级div没有class: 针对以上问题逐一进行了修改成如下: 1:如果没有数据不显示分页,如果有一页及以上内容即显示分页: 2:默认就显示第一页和最后一页按钮,但是在当前

ASP经典分页类

================================================================= 'XDOWNPAGE ASP版本 '版本 1.00 'Code by zykj2000 'Email: [email protected] 'BBS: http://bbs.513soft.net '本程序可以免费使用.修改,希望我的程序能为您的工作带来方便 '但请保留以上请息 ' '程序特点 '本程序主要是对数据分页的部分进行了封装,而数据显示部份完全由用户自定义

php 分页类

<?php/* * ********************************************* * @类名: page * @参数: $myde_total - 总记录数 * $myde_size - 一页显示的记录数 * $myde_page - 当前页 * $myde_url - 获取当前的url * @功能: 分页实现 * @作者: 宋海阁 */ class page{ private $myde_total; //总记录数 private $myde_size; //一页

分页类

<?php /** file: page.class.php 完美分页类 Page */ class Page { private $total; //数据表中总记录数 private $listRows; //每页显示行数 private $limit; //SQL语句使用limit从句,限制获取记录个数 private $uri; //自动获取url的请求地址 private $pageNum; //总页数 private $page; //当前页 private $config = arr

商品中的分页类

分页类: 共5条商品,每页显示2条 问:共几页? 答:3页,页数是整的 问:第1页显示第几条到第几条? 答:1-2条 问:第2页显示第几条到第几条? 答:3-4条. 总结: 分页原理的3个变量! 总条数 $total 每页条数 $perpage 当前页 $page 分页原理的2个公式 总页数 $cnt = ceil($total/$perpage); // 相除,向上取整. 第$page页,显示第几条到第几条? 答: 第$page页,说明前面已经跳过$page-1页,每页又是$perpage条

thinkphp 分页类介绍

thinkphp 中的分页类在我看来还是很强大的,使用起来也是很方便的.只要传总的条数,和每页显示的条数,还有样式配置数组,你就可以轻松显示分页,而且可以方便的调整前台页数代码的样式. 下面介绍一下一些配置参数: public $firstRow; // 起始行数 public $listRows; // 列表每页显示行数 public $parameter; // 分页跳转时要带的参数 public $totalRows; // 总行数 public $totalPages; // 分页总页面