PHP之分页类
<?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之分页类的更多相关文章
- php实现的分页类
php分页类文件: <?php /** file: page.class.php 完美分页类 Page */ class Page { private $total; //数据表中总记录数 pr ...
- asp.net的快捷实用分页类
KeleyiPager分页类,可以于对列表页进行分页浏览,代码是从HoverTreeCMS项目中COPY的,感觉很不错,使用简单方便,但是功能强大. 在线体验效果:http://cms.hovertr ...
- php分页类
1.需求 学会php分页类的使用 2.参考例子 CI的分页类 3.代码部分 <?php class pagination{ public $pagesize=20; public $pagein ...
- PHPCMS V9 分页类的修改教程
首先,打开 phpcms\libs\functions\global.func.php 这个文件,找到文件第622行的分页函数,复制一下,粘贴到默认分页函数的下面,重新命名后保存.(笔者在此命名为:p ...
- php 简单分页类
/** file: page.class.php 完美分页类 Page */ class Page { private $total; //数据表中总记录数 privat ...
- PHP简单漂亮的分页类
本文介绍一款原生的PHP分页类,分页样式有点类似bootstrap. <?php /* * ********************************************* * @类名 ...
- ThinkPHP 分页类的使用及退出功能的实现
/* ThinkPHP设置编码统一: 一.数据库设置为utf8_bin 二.HTML页面设置charset=utf-8,而且检查文档编码格式是否是utf-8.phpDesigner8设置方式为“文件- ...
- php部分---一个分页类、用法
1.分页类 <?php /** file: page.class.php 完美分页类 Page */ class Page { private $total; //数据表中总记录数 privat ...
- DedeCMS织梦动态分页类,datalist标签使用实例
<?php require_once(dirname(__FILE__)."/include/common.inc.php");//载入基础文件 require_once(D ...
- webpy分页类 + 上传类
webpy没有分页类.按照php的思路.自己编了一个.数据库用的是sqlite. class Page(object): '''分页类''' def __init__(self,page_size,d ...
随机推荐
- iptables使用
iptables规则的查看.添加.删除和修改 1.查看 iptables -nvL --line-number (这个命令跟/etc/init.d/iptables status 输出差不多) -L ...
- dev c++ 的一些快捷键
Ctrl+N新建源代码Ctrl+O打开工程或源文件Ctrl+S保存Ctrl+Alt+S另存为Ctrl+W关闭Ctrl+P打印Ctrl+Z回复Ctrl+Y重做Ctrl+Q切换头/源文件Ctrl+.注释C ...
- Codeforce Round #214 Div2
我是不是快要滚蛋了,这次CF爆0? 居然第一题都过不去了,妈蛋附近有没有神经病医院,我要去看看! 精力憔悴! 第一题,我以为要恰好这么多钱,不能多余,想想这也没必要,不符合逻辑,及自己就是这么傻逼! ...
- C++之路进阶——codevs2313(星际竞速)
2313 星际竞速 2010年省队选拔赛山东 时间限制: 3 s 空间限制: 128000 KB 题目等级 : 大师 Master 题目描述 Description 10 年一度的银河系 ...
- mysql水平拆分与垂直拆分的详细介绍(转载http://www.cnblogs.com/nixi8/p/4524082.html)
垂直 垂直拆分是指数据表列的拆分,把一张列比较多的表拆分为多张表 通常我们按以下原则进行垂直拆分: 把不常用的字段单独放在一张表; 把text,blob等大字段拆分出来放在附表中; 经常组合查询的 ...
- linux时间的查看与修改
1.查看时间和日期 date 2.设置时间和日期 将系统日期设定成1996年6月10日的命令 date -s 06/22/96 将系统时间设定成下午1点52分0秒的命令 date -s 13:52:0 ...
- 【RoR win32】安装RoR
在配置好ruby的win 7 命令行下运行, gem install rails 安装成功之后会收到提示,下面就可以用rails建立项目了. 为了提高“rails new”时“bundle insta ...
- 【crunch bang】国内源
/etc/apt/sources.list 因为测试需要,装完Debian7 后,更新为163的源,但是后来装软件时,一些软件依赖包还是装不上.后来把163源稍加改动,就好用了.163源内容如下: d ...
- win7 64位系统下 PL/SQL无法连接的问题
第一步:下载oracle客户端 由于 PLSQL Developer 没有64位版本,所以在64位系统上运行该程链接64位Oracle时就会报错,笔者为这个问题纠结了好几天,后来通过请教Google ...
- Swift数据类型简介
用 Swift 编写 iOS 和 OS X 应用将是一场美妙的体验,Swift 之后也会不断开发新特性和兼容性. Swift 提供了与C.Objective-C的相似的基础数据类型,包含整数Int,浮 ...