一个简单的php分页类代码(转载)

入门级php分页类

原文地址:http://www.xfcodes.com/php/fenye/3608.htm
时间:2015-12-16 20:52:00来源:网络

php分页类。

复制代码代码如下:

<?php
/*
* 快速php分页类
*
**/
class Page{
    private $totalpage;
    private $stride;
    private $currentpage;
    //设置总页数
    function setTotalpage($objpage=1){
    $this->totalpage=$objpage;
    }
    //设置当前页
    function setCurrentpage($objpage=1){
    $this->currentpage=$objpage;
    } //先锋教程网 www.xfcodes.com
    //设置跨度
    function setStride($objStride=1){
    $this->stride=$objStride;
    }
//获得总页数
    function getTotalpage(){
    return $this->totalpage;
    }
//获得跨读
    function getStride($objStride=1){
    return $this->stride;
    }
    //获取当前页
    function getCurrentpage($objpage=1){
    return $this->currentpage;
    }
    //打印分页
    public function Pageprint(){
        for($Tmpa=1;$Tmpa<=$this->totalpage;$Tmpa++){
            if($Tmpa+$this->stride<$this->currentpage){//加了跨度还小于当前页的不显示
                continue;
                }
            if($Tmpa+$this->stride==$this->currentpage){//刚好够跨度的页数
                $p=$this->currentpage-1;
                $willprint.="<a href=\"$_SERVER[PHP_SELF]?page=1\"><span>首页</span></a> <a href=\"$_SERVER[PHP_SELF]?page=$p\"><span>上一页</span></a> ";
                }
            if($Tmpa>$this->currentpage+$this->stride){//大于当前页+跨度的页面
                break;
            }
            $willprint.="[<span><a href=\"$_SERVER[PHP_SELF]?page=$Tmpa\">$Tmpa</a></span>]";
            if($Tmpa==$this->currentpage+$this->stride){//刚好够跨度的页数
                $p=$this->currentpage+$this->stride+1;
                $willprint.="<a href=\"$_SERVER[PHP_SELF]?page=$p\"><span>下一页</span></a> <a href=\"$_SERVER[PHP_SELF]?page=$this->totalpage\"><span>末页</span></a>";
                }
            }
        echo $willprint;
    }
}

class cut_page extends Page
{
    var    $filename;
    var $showtotal;
    function __construct($filename){
    $this->cachefile    =    $filename;
    $this->showtotal    =    "yes";
    }
    public function filename(){
    if (file_exists($this->cachefile)){
        return 1;
        }
    else
        return 0;
    }
    private $type;
    public function typelist($typeid){
        $this->type    =    $typeid;
        $fp    =    fopen($this->cachefile,"rb");
        $str=    fread($fp,filesize($this->cachefile));
        //echo $this->type."<br>"; //分类ID
        $arr=    explode("::",$str);

for ($i=0;$i<count($arr);$i++){
            $arr2    =    explode("=",$arr[$i]);
            if($arr2[0]==$this->type){
                //return $arr2[1];
                if(isset($_GET[page])){
                    $page=$_GET[page];
                }else{
                    $page=1;
                    }
                Page::setTotalpage($arr2[1]);
                Page::setCurrentpage($page);
                Page::setStride(3);
                Page::Pageprint();
                if ($this->showtotal=="yes"){
                    echo "<span style=\"border:1px solid #ccc;margin-left:40px;padding:1px 1px;\">".$page."/".$arr2[1]."页</span>";
                    }
                }
            }
        fclose($fp);
    }
    public function updatelist($typeid,$value){
        $this->type    =    $typeid;
        $this->typevalue=$value;
        if (file_exists($this->cachefile)){        //若文件存在
            $fp    =    fopen($this->cachefile,"rb+");
            $str=    fread($fp,filesize($this->cachefile));
            if(ereg("::".$this->type."=[0-9]+",$str)){
                //正则替换
                $str2=    ereg_replace("::".$this->type."=[0-9]+","::".$this->type."=".$this->typevalue,$str);
                fseek($fp,0); //从文件头开始
                fwrite($fp,$str2);        //写入文件新数据
                $seek    =    ftell($fp);        //返回文件指针长度
                ftruncate($fp,$seek);        //截断文件
                }
            else{
                $str2    =    "::".$this->type."=".$this->typevalue;
                fwrite($fp,$str2);    //若分类ID不存在,则续写文件
                }
            }
        else{        //若文件不存在
            $fp    =    fopen($this->cachefile,"xb");
            $str="::".$this->type."=".$this->typevalue;
            fwrite($fp,$str);
            }
        fclose($fp);
    }
}

/*使用方法,参数为缓存文件名,可自定义*/
$listpage    =    new cut_page("pages_cache.txt");
/*列出分页 参数为分类的ID*/
$listpage->typelist("2");
$listpage->showtotal="yes";    //是否显示总数yes /no   默认为yes

echo "<br>";
/*
修改分页文件或者创建分页文件,参数分别为分类ID,分页数量,此方法使用在创建文章后遍历数据库获得分类的ID及分页的总量
分页=总记录/每页显示数目 ^0^这个自己算。updatelist(type,num)
//$listpage->updatelist("6","900");
  cut_page为主类。可进行分页的创建,修改,显示
*/
?>

时间: 2025-01-14 10:48:05

一个简单的php分页类代码(转载)的相关文章

PHP分页类代码

今天为大家献上一段代码,这是一段php分页代码: <?php//创建分页类class Page {    private $_all_num;                                                            //数据总个数    private $_page_size;                                                        //每页显示几条数据    private $_page;  

对一个简单的时间片轮转多道程序内核代码的浅析

这周在网易云课堂上学习了<Linux内核分析>——操作系统是如何工作的.本周学习内容有利用 mykernel 实验模拟计算机平台和利用 mykernel 实验模拟计算机硬件平台两部分内容. 这是实验楼中 mykernel 平台运行的结果: 下面是一段一个简单的时间片轮转多道程序内核代码: 1 /* 2 * linux/mykernel/myinterrupt.c 3 * 4 * Kernel internal my_timer_handler 5 * 6 * Copyright (C) 201

PHP实现的一个简单的数据库操作类

PHP实现的一个简单的数据库操作类 实现的功能: - 在实例化的时候能设置连接字符集 - 在实例化的时候能连接数据库 - 在实例化的时候能选择默认数据库 - 销毁对象时关闭数据库 代码如下: <?php // 数据库操作类MySQLDB class MySQLDB { // 声明属性 private $server; private $username; private $password; public $default_db; public $link; // 声明构造函数 public f

Linux内核分析—完成一个简单的时间片轮转多道程序内核代码

---恢复内容开始--- 20135125陈智威 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 ” 实验要求: mykernel实验指导(操作系统是如何工作的) 运行并分析一个精简的操作系统内核,理解操作系统是如何工作的 使用实验楼的虚拟机打开shell cd LinuxKernel/linux-3.9.4 qemu -kernel arch/x86/boot/bzImage 然后cd

一个简单的参数校验类

当我们写js的重载函数的时候,我们需要判断不同的输入情况. 而,一般我们是根据参数的个数来判断的,但是,常常情况并非如此: function abc(a,b,c) a:string b:number c:boolean 或者 a:string b:string c:number 这两种情况都是参数个数为3,但是参数类型却完全不同.如何的方便的构建一个重载函数呢? 用我的类即可: 类代码(很简短): var Param = { varify: function (oParam, sParamTyp

简单的beego分页功能代码

一个简单的beego分页小插件(源代码在最下面): 支持条件查询 支持参数保留 支持自定义css样式 支持表/视图 支持参数自定义 默认为pno 支持定义生成链接的个数 使用方式: 1)action中,引入包,然后如下使用: /** * 日志列表 */ func (this *LogController) List() { pno, _ := this.GetInt("pno") //获取当前请求页 var tlog []m.Tb_log var conditions string =

完成一个简单的时间片轮转多道程序内核代码(二)

完成一个简单的时间片轮转多道程序内核代码 重要汇编代码分析 asm volatile( "movl %1,%%esp\n\t" "pushl %1\n\t" "pushl %0\n\t" "ret\n\t" "popl %%ebp\n\t" : : "c" (task[pid].thread.ip),"d" (task[pid].thread.sp) ); 保存恢复进

PHP实现的一个简单的数据库操作类(修改版)

PHP实现的一个简单的数据库操作类 实现的功能: - 在实例化的时候能设置连接字符集 - 在实例化的时候能连接数据库 - 在实例化的时候能选择默认数据库 - 销毁对象时关闭数据库 代码如下: <?php // 数据库操作类MySQLDB class MySQLDB { // 声明属性 private $server; private $port; private $username; private $password; public $default_db; private $charset;

一个重构的js分页类

// JavaScript Document /**//** * js分页类 * @param iAbsolute 每页显示记录数 * @param sTableId 分页表格属性ID值,为String * @param sTBodyId 分页表格TBODY的属性ID值,为String,此项为要分页的主体内容 * @Version 1.0.0 * @author 辛现宝 2007-01-15 created * var __variable__; private * function __met