入门级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为主类。可进行分页的创建,修改,显示
*/
?>

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

  1. 一个简单的CI分页类

    [php] view plaincopy <span style="font-size:16px;">/** * * 关于 页码有效性的判断需要加在 控制器中判断,即当 ...

  2. PHP分页类代码

    今天为大家献上一段代码,这是一段php分页代码: <?php//创建分页类class Page {    private $_all_num;                           ...

  3. php分页类代码带分页样式效果(转)

    php分页类代码,有漂亮的分页样式风格 时间:2016-03-16 09:16:03来源:网络 导读:不错的php分页类代码,将类文件与分页样式嵌入,实现php查询结果的精美分页,对研究php分页原理 ...

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

    ---恢复内容开始--- 20135125陈智威 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-10 ...

  5. 20135202闫佳歆--week2 一个简单的时间片轮转多道程序内核代码及分析

    一个简单的时间片轮转多道程序内核代码及分析 所用代码为课程配套git库中下载得到的. 一.进程的启动 /*出自mymain.c*/ /* start process 0 by task[0] */ p ...

  6. 简单的beego分页功能代码

    一个简单的beego分页小插件(源代码在最下面): 支持条件查询 支持参数保留 支持自定义css样式 支持表/视图 支持参数自定义 默认为pno 支持定义生成链接的个数 使用方式: 1)action中 ...

  7. python定义的一个简单的shell函数的代码

    把写代码过程中经常用到的一些代码段做个记录,如下代码段是关于python定义的一个简单的shell函数的代码. pipe = subprocess.Popen(cmd, stdout=subproce ...

  8. php分页类代码和使用

    在这要说的一点就是如果你做的分页是有搜索条件的,那么就可以用下面的代码,然后调用之后在new Page()里面把连接加进去就可以了.例如: $href="http://www.***.cn/ ...

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

    PS.贺邦   原创作品转载请注明出处  <Linux内核分析>MOOC课程    http://mooc.study.163.com/course/USTC-1000029000 1.m ...

随机推荐

  1. git - 版本控制器(本地仓库)

    本地创建仓库,然后进行管理.提交到本地仓库(不需要网络),提交到远程仓库(需要网络) 相对于svn为克隆方式,赋值的是整个仓库,svn只是复制的代码.   1.电脑新创建一个”本地仓库”空文件夹 2. ...

  2. (转)fastdfs_v4.07 / 实现多服务器

    http://my.oschina.net/shking/blog/165326 自己闲着没事,在小黑上虚拟了 4 个 centos 64 的系统,用来安装分布式 fastdfs . nginx 负载 ...

  3. [转]Spring数据库读写分离

    数据库的读写分离简单的说是把对数据库的读和写操作分开对应不同的数据库服务器,这样能有效地减轻数据库压力,也能减轻io压力. 主(master)数据库提供写操作,从(slave)数据库提供读操作,其实在 ...

  4. mongodb学习相关网址

    1.MongoDB官网 https://www.mongodb.org 2.MongoDB教程 http://www.yiibai.com/mongodb 3.MongoDB教程http://www. ...

  5. 设置ISE/vivado中默认文本编辑器为gvim

    ise windows版,添加方式 ISE下点击菜单Edit -> Preferences -> Editor. 在Editor选项框里选择Custom,在Command line syn ...

  6. PHP Fatal error: Cannot pass parameter 2 by reference

    PHP Fatal error:  Cannot pass parameter 2 by reference in 这个错误的意思是:不能按引用传递第2个参数 我的理解是: 方法的第2个参数 需要传递 ...

  7. [Laravel] 获取执行的Sql

    获取数据库操作记录 $queries = DB::getQueryLog(); //取最后一条是 $lastSql = end($queries); 不过这样输出的,不是真正的sql,输出的是类似PD ...

  8. sql server 表变量、表类型、临时表

    sql server 中临时表分为会话临时表和永久临时表.会话临时表在会话结束后自动被删除,永久临时表与基本表的使用上基本无差异,需要显示调用drop将其删除. 创建临时表 创建会话临时表 creat ...

  9. js事件监听机制(事件捕获)总结

    在前端开发过程中我们经常会遇到给页面元素添加事件的问题,添加事件的js方法也很多,有直接加到页面结构上的,有使用一些js事件监听的方法,由于各个浏览器对事件冒泡事件监听的机制不同,le浏览器只有事件冒 ...

  10. 在线HTML编辑器 kindeditor-4.1.10 上传图片文件 应用指南

    1.在ASPX页面中对应的head.body添加相应的红色部分 2.引用kindeditor-4.1.10中的litjosn.dll 3.在写入数据库时要替换相应的路径和IP 4.kindeditor ...