文档章节

php 动态/伪静态分页类

啊和
 啊和
发布于 2012/07/30 16:01
字数 559
阅读 128
收藏 2
php
 php 动态/伪静态分页类
 
RewritePage.class.php
 
<?php
class RewritePage
{
    private $myde_count; //总记录数
    public $myde_size; //每页记录数
    private $myde_page; //当前页
    private $myde_page_count; //总页数
    private $page_url; //页面url
    private $page_i; //起始页
    private $page_ub; //结束页
    public $page_limit;
 
    function __construct($myde_count=0,$myde_size=1,$myde_page=1,$page_url)//构造函数
    {
        $this->myde_count=$this->numeric($myde_count);
        $this->myde_size=$this->numeric($myde_size);
        $this->myde_page=$this->numeric($myde_page);
        $this->page_limit=($this->myde_page * $this -> myde_size) - $this -> myde_size; //下一页的开始记录
        $this->page_url=$page_url; //连接的地址
        if($this->myde_page<1)$this->myde_page=1; //当前页小于1的时候,,值赋值为1
        if($this->myde_count<0)$this->myde_page=0;
        $this->myde_page_count=ceil($this->myde_count/$this->myde_size);//总页数
        if($this->myde_page_count<1)
        $this->myde_page_count=1;
        if($this->myde_page>$this->myde_page_count)
        $this->myde_page=$this->myde_page_count;
        //$this->page_i=$this->myde_page-2;
        $this->page_i=$this->myde_page-2;
        $this->page_ub=$this->myde_page+2;
        //$this->page_ub=$this->myde_page+2;
        if($this->page_i<1)$this->page_i=1;
        if($this->page_ub>$this->myde_page_count){$this->page_ub=$this->myde_page_count; }
    }
   
    private function numeric($id) //判断是否为数字
    {
        if (strlen($id)){
            if (!preg_match("/^[0-9]+$/",$id)) $id = 1;
        }else{
            $id = 1;
        }
        return $id;
    }
   
    private function page_replace($page) //地址替换
    {
        return str_replace("{page}", $page, $this -> page_url);
    }
   
    private function myde_home() //首页
    {
        if($this -> myde_page != 1){
            return " <li><a href=\"".$this -> page_replace(1)."\" title=\"首页\" >首页</a></li>\n";
        }else{
            return " <li>&nbsp;首页&nbsp;</li>\n";
        }
    }
   
    private function myde_prev() //上一页
    {
        if($this -> myde_page != 1){
            return " <li><a href=\"".$this -> page_replace($this->myde_page-1) ."\" title=\"上一页\" >上一页</a></li>\n";
        }else{
            return " <li>&nbsp;上一页&nbsp;</li>\n";
        }
    }
   
    private function myde_next() //下一页
    {
        if($this -> myde_page != $this -> myde_page_count){
            return " <li><a href=\"".$this -> page_replace($this->myde_page+1) ."\" title=\"下一页\" >下一页</a></li>\n";
 
        }else{
            return " <li>&nbsp;下一页&nbsp;</li>\n";
        }
    }
   
    private function myde_last() //尾页
    {
        if($this -> myde_page != $this -> myde_page_count){
            return " <li><a href=\"".$this -> page_replace($this -> myde_page_count)."\" title=\"尾页\" >尾页</a></li>\n";
 
        }else{
            return " <li>&nbsp;尾页&nbsp;</li>\n";
        }
    }
   
    function myde_write($id='page') //输出
    {
        $str = "<div id=\"".$id."\" <ul>\n ";
        //$str .= " <li>总记录:<span>".$this -> myde_count."</span></li>\n";
        //$str .= " <li><span>".$this -> myde_page."</span>/<span>".$this -> myde_page_count."</span></li>\n";
        $str .= $this -> myde_home();
        $str .= $this -> myde_prev();
        for($page_for_i=$this->page_i;$page_for_i <= $this -> page_ub; $page_for_i++){
            if($this -> myde_page == $page_for_i){
                $str .= " <li style="font-size: 12px; font-family: Times New Roman;"<            }
            else{
                $str .= " <li><a href=\"".$this -> page_replace($page_for_i)."\" title=\"第".$page_for_i."页\">";
                $str .= $page_for_i . "</a></li>\n";
            }
        }
        $str .= $this -> myde_next();
        $str .= $this -> myde_last();
        // $str .= " <li type=\"text\" value=\"".$this -> myde_page."\"";
        // $str .= "onmouseover=\"javascript:this.value='';this.focus();\" onkeydown=\"javascript: if(event.keyCode==13){ location='";
        // $str .= $this -> page_replace("'+this.value+'")."';return false;}\"";
        // $str .= " title=\"输入您想要到达的页码,然后回车!\" /></li>\n";
        $str .= " </ul></div>";
        return $str;
    }
}
/*-------------------------实例--------------------------------*
$page = new RewritePage(1000,5,$_GET['page'],'?page={page}');//用于动态
$page = new RewritePage(1000,5,$_GET['page'],'list-{page}.html');//用于静态或者伪静态
$page -> myde_write();//显示
*/
?>


本文转载自:http://cnxsz.com/code/php/17765.html

共有 人打赏支持
啊和
粉丝 10
博文 42
码字总数 1249
作品 0
石景山
程序员
私信 提问
加载中

评论(1)

DDIAN
DDIAN
不错啊,http://blog.qita.in
程序人生:dedecms伪静态的实现方法

操作如下: 1、后台-系统参数-核心设置-是否使用伪静态:选择“是”; 注:你的网站空间是否支持伪静态,你可以与空间的IDC商联系一 下,如果是自己的服务器,那就更好办了,自己动手,丰衣足...

qq_42302805
2018/11/30
0
0
关于 Apache 伪静态效率问题,如何操作更省资源

学PHP不久,准备写个文章管理系统,不打算生成静态页面,而是使用动态和伪静态。 动态网址类似 view.php?id=10086?page=4 list.php?id=5?page=18 伪静态网址类似,当使用伪静态时在网址中加个...

OSC老司机
2012/01/20
652
5
基于 ThinkPHP 的内容管理系统--歪酷CMS

歪酷网站管理系统(歪酷CMS)是一款基于THINKPHP框架开发的PHP+MYSQL网站建站程序,本程序实现了文章和栏目的批量动态管理,支持栏目无限分类,实现多管理员管理,程序辅助功能也基本实现了常见的文...

鲁大在线
2013/02/19
5.4K
0
PbootCMS V1.2.1 发布,细节优化及调整

PbootCMS V1.2.1 build 2018-09-12 1、新增在线升级新版本红点提示; 2、新增程序部署到非根目录时虚拟目录大小写不区分; 3、新增表单提交频率安全检测; 4、调整程序非伪静态时不再显示htm...

hnxsh
2018/09/12
841
2
安优企业建站系统--anyoucms

面向服务对象 主要针对 企业,自助建站 简单,安全,个性化,人性化, 数据自由扩展性,无系统漏洞 逻辑扩展无模版引擎 数据库预设自由字段 理论支持任何形式的站点 系统介绍 短网址 (方便搜索引擎...

13yd
2013/01/24
3.5K
0

没有更多内容

加载失败,请刷新页面

加载更多

5、redis分布式锁

参考链接:https://www.cnblogs.com/linjiqin/p/8003838.html 一:介绍 实现分布式锁有三种方式:1、数据库乐观锁,2、基于redis,3、基于zookeeper。 redis服务端是单线程操作,完美地避免了...

刘付kin
23分钟前
3
0
OSChina 周日乱弹 —— 我重新说

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @宇辰OSC :分享矢野立美的单曲《LOVE Theme from TIGA <M-2>》: 《LOVE Theme from TIGA <M-2>》- 矢野立美 手机党少年们想听歌,请使劲儿戳...

小小编辑
今天
64
5
Java单例模式学习记录

在项目开发中经常能遇见的设计模式就是单例模式了,而实现的方式最常见的有两种:饿汉和饱汉(懒汉)。由于日常接触较多而研究的不够深入,导致面试的时候被询问到后有点没底,这里记录一下学习...

JerryLin123
昨天
10
0
VSCODE 无法调试

VSCODE 无法调试 可以运行 可能的原因: GCC 的参数忘了加 -g

shzwork
昨天
5
0
理解去中心化 稳定币 DAI

随着摩根大通推出JPM Coin 稳定币,可以预见稳定币将成为区块链落地的一大助推器。 坦白来讲,对于一个程序员的我来讲(不懂一点专业经济和金融),理解DAI的机制,真的有一点复杂。耐心看完...

Tiny熊
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部