<?php
/**
* Created by PhpStorm.
* User: Administrator
* Date: 2016/6/22
* Time: 21:37
*/ Class Page{
protected $sum; //总记录数
protected $page_show; //每页显示多少记录
protected $totalpage; //总页数
protected $page; //当前页面
protected $limit;
protected $url;
protected $start; //开始
protected $end; //结束 function __construct($sum,$row=1)
{
$this->sum=$sum; //总记录数
$this->page_show=$row; //每页显示
$this->totalpage=ceil($this->sum/$this->page_show);//总页数
$this->url=$this->curUrl(); //地支
$this->page=$this->curPage(); //当前页 $this->start=($this->page-1)*$this->page_show; //起始页 }
//获取当前页
//min($this->totalpage,max((int)@$_GET['page'],1));
public function curPage()
{
if(!empty($_GET['page']))
{
if($_GET['page']>$this->totalpage)
{
$page=$this->totalpage;
}else{
$page=$_GET['page'];
}
}else{
$page=1;
}
return $page; } //获取当前地址
public function curUrl(){
// $_url=$_SERVER['REUQEST_URI']; //当前的Url
// $_par=parse_url($_url); //分解当前URL
// if(isset($_par['query']))
// {
//
// } $curUrl=isset($_SERVER['REQUEST_URI'])?$_SERVER['REQUEST_URI']:$_SERVER['PHP_SELF'].$_SERVER['QUERY_STRING'];
//解析字符串
$parseURL=parse_url($curUrl); //分解获取查询字符串
if(isset($parseURL['query']))
{
parse_str($parseURL['query'],$arr); //将字符串解析成变量,并放去数组中
unset($arr['page']);
//$curUrl=$parseURL['path']."?".http_build_query($arr);
$curUrl = $parseURL['path']."?".http_build_query($arr)."&page=";
//var_dump($curUrl);
}else{
$curUrl=strstr($curUrl,"?")?$curUrl."page=":$curUrl."?page=";
}
return $curUrl;
} //分页查询记录数
public function limit()
{
return "LIMIT {$this->start},{$this->page_show}";
} //上一页
public function pre()
{
return $this->page>1?"<a href='".$this->url.($this->page-1)."'>上一页</a>":'1';
} //下一页
public function next(){
return $this->page<$this->totalpage?"<a href='".$this->url.($this->page+1)."'>下一页</a>":'';
} //首页
public function index()
{
return $this->page>1?"<a href='{$this->url}1'>首页</a>":'1';
} //未接
public function end()
{
return $this->page<$this->totalpage?"<a href='{$this->url}{$this->totalpage}'>未页</a>":'';
}
//总页数
public function count()
{
return "<span>总页{$this->totalpage}  总计{$this->sum}条</span>";
} //页码数组
public function pagearray()
{
$pagelist=array();
for($i=1;$i<$this->totalpage;$i++)
{
if($i==$this->page){
$pagelist[$i]['url']="";
$pagelist[$i]['str']=$i;
continue;
}
$pagelist[$i]['url']=$this->url.$i;
$pagelist[$i]['str']=$i;
}
return $pagelist; } //下拉列表 public function select()
{
$arr=$this->pagearray();
$str="<select class='s' onchange='javascript:location.href=this.options[selectedIndex].value'>";
foreach($arr as $v)
{
$str.=empty($v['url'])?"<option value='{$this->url}{$v['str']}' selected='selected'>{$v['str']}</option>":"<option value='{$v['url']}'>{$v['str']}</option>";
}
$str.="</select>";
return $str;
} } $p=new Page(20);
echo $p->index();
echo "</br>";
//echo $p->curUrl();
echo "</br>";
echo $p->end();
echo $p->count();
echo $p->select();

  

PHP之分页类的更多相关文章

  1. php实现的分页类

    php分页类文件: <?php /** file: page.class.php 完美分页类 Page */ class Page { private $total; //数据表中总记录数 pr ...

  2. asp.net的快捷实用分页类

    KeleyiPager分页类,可以于对列表页进行分页浏览,代码是从HoverTreeCMS项目中COPY的,感觉很不错,使用简单方便,但是功能强大. 在线体验效果:http://cms.hovertr ...

  3. php分页类

    1.需求 学会php分页类的使用 2.参考例子 CI的分页类 3.代码部分 <?php class pagination{ public $pagesize=20; public $pagein ...

  4. PHPCMS V9 分页类的修改教程

    首先,打开 phpcms\libs\functions\global.func.php 这个文件,找到文件第622行的分页函数,复制一下,粘贴到默认分页函数的下面,重新命名后保存.(笔者在此命名为:p ...

  5. php 简单分页类

    /**  file: page.class.php   完美分页类 Page  */ class Page {  private $total;          //数据表中总记录数  privat ...

  6. PHP简单漂亮的分页类

    本文介绍一款原生的PHP分页类,分页样式有点类似bootstrap. <?php /* * ********************************************* * @类名 ...

  7. ThinkPHP 分页类的使用及退出功能的实现

    /* ThinkPHP设置编码统一: 一.数据库设置为utf8_bin 二.HTML页面设置charset=utf-8,而且检查文档编码格式是否是utf-8.phpDesigner8设置方式为“文件- ...

  8. php部分---一个分页类、用法

    1.分页类 <?php /** file: page.class.php 完美分页类 Page */ class Page { private $total; //数据表中总记录数 privat ...

  9. DedeCMS织梦动态分页类,datalist标签使用实例

    <?php require_once(dirname(__FILE__)."/include/common.inc.php");//载入基础文件 require_once(D ...

  10. webpy分页类 + 上传类

    webpy没有分页类.按照php的思路.自己编了一个.数据库用的是sqlite. class Page(object): '''分页类''' def __init__(self,page_size,d ...

随机推荐

  1. asp.net treeview 异步加载

    在使用TreeView控件的时候,如果数据量太大,这个TreeView控件加载会很慢,有时甚至加载失败, 为了更好的使用TreeView控件加载大量的数据,采用异步延迟加载TreeView. 在Tre ...

  2. p++ ++p

    1.P++是先使用这个变量,使用完了再加1,你的例子就是,先输出,再加一++P是先加一,在使用变量 eg: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 1 ...

  3. 传递闭包(Floyd+bellman-Fold POJ1932)

    传递闭包 在一个有向(无向)连通图中,如果节点i与k联通,k与j联通,则i和j联通,传递闭包就是把所有传递性的节点求出来,之后就知道了任意两个节点的连通性,只需枚举节点的联通情况即可,无需考虑最短路径 ...

  4. [原创]java WEB学习笔记65:Struts2 学习之路--Struts的CRUD操作( 查看 / 删除/ 添加) ModelDriven拦截器 paramter 拦截器

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  5. [原创]java WEB学习笔记55:Struts2学习之路---详解struts2 中 Action,如何访问web 资源,解耦方式(使用 ActionContext,实现 XxxAware 接口),耦合方式(通过ServletActionContext,通过实现 ServletRequestAware, ServletContextAware 等接口的方式)

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  6. Cookie—的使用

    编写 Cookie 浏览器负责管理用户系统上的 Cookie.Cookie 通过 HttpResponse 对象发送到浏览器,该对象公开称为 Cookies 的集合. 可以将 HttpResponse ...

  7. 夺命雷公狗ThinkPHP项目之----企业网站20之网站前台头尾分离

    我们的网站直接让他头尾进行分离即可: 然后在代码里面找到id 为header的这段代码: 然后将整个div的内容都给弄出来,然后在view里面创建一个Public的目录,然后在创建一个header.h ...

  8. 夺命雷公狗---Thinkphp----15之遍历出来的栏目页的完成

    我们首页的写法和我们的文章页的代码很相似,我们要在点击我们的栏目页的时候遍历出对应的代码: 那么我们就直接来创建一个ListsController.class.php的文件,代码如下所示: 老规矩遍历 ...

  9. Javascript与C#编码解码

    (一) Javascript与C#编码解码的对应关系 http://www.jb51.net/article/44062.htm 这篇文章主要是对JS与C#编码解码进行了详细的介绍,需要的朋友可以过来 ...

  10. google pinyin elmentary os

    sudo apt-get install software-properties-common for ppa. I have been using Sun Pinyin for quite a lo ...