php分页类
1.需求
学会php分页类的使用
2.参考例子
CI的分页类
3.代码部分
<?php class pagination{
public $pagesize=20;
public $pageindex=2;
public $total_row=202;
public $linkurl='test.php?c=1&m=2';
public $pagestr="&page=";
public $pageshownum=22; public function __construct($params = array())
{
if (0 < count($params)) {
$this->initialize($params);
}
} public function initialize($params = array())
{
if (0 < count($params)) {
foreach ($params as $key => $val ) {
if (isset($this->$key)) {
$this->$key = $val;
}
}
}
}
public function create_link()
{
if ($this->total_row <= 0) {
return "";
} if ($this->pagesize <= 0) {
return "";
} $maxPage=0;
if($this->total_row%$this->pagesize === 0)
{
$maxPage =(int)$this->total_row/$this->pagesize;
}
else
{
$maxPage =(int)($this->total_row/$this->pagesize)+1;
} if ($maxPage < $this->pageindex) {
return "";
} $num = $this->pageshownum;
if($num>$maxPage)
{
$num=$maxPage;
} return $this->PageSatte($maxPage, $this->pageshownum, $this->pageindex, $this->total_row, $this->linkurl, $this->pagestr); } private function PageSatte($maxpage,$pageshownum, $pageindex, $docount, $linkurl, $pagetag = "&page")
{
$num = $pageshownum;
if($num>$maxpage)
{
$num=$maxpage;
}
$str='<ul class="m-pagination1 clearfix">'; $str.='<span>第'.$pageindex."/".$docount."页</span>";
$str.='<span>共'.$maxpage."页</span>";
if($pageindex!==1)
{
$str.="<li><a href=".$linkurl.$pagetag."1".">第一页</a></li>";
$str.="<li><a href=".$linkurl.$pagetag.($pageindex-1).">上一页</a></li>";
} for($i=1;$i<($maxpage+1);$i+=$num)
{
if(($i<=$pageindex) && ($pageindex<($i+$num)))
{
for($j=$i;$j<($i+$num);$j++)
{
if($pageindex!==$j)
{
$str.="<li><a href=".$linkurl.$pagetag.$j.">".$j."</a></li>";
}
else
{
$str.="<li><a>".$j."</a></li>";
}
}
}
} if($pageindex<$maxpage)
{
$str.="<li><a href=".$linkurl.$pagetag.($pageindex+1).">下一页</a></li>";
$str.="<li><a href=".$linkurl.$pagetag.$maxpage.">最后一页</a></li>";
}
return $str;
}
}
$config=array(
'pagesize'=>30,
'pageindex'=>1,
'total_row'=>303,
"linkurl"=>'localhost/index.php?c=index&m=index',
"pagestr"=>'$page=',
'pageshownum'=>10
);
$obj = new pagination($config);
echo $obj->create_link();
4.总结
主要是生成数字那部分的算法和不合理情况的返回空值的设定。
php分页类的更多相关文章
- php实现的分页类
php分页类文件: <?php /** file: page.class.php 完美分页类 Page */ class Page { private $total; //数据表中总记录数 pr ...
- asp.net的快捷实用分页类
KeleyiPager分页类,可以于对列表页进行分页浏览,代码是从HoverTreeCMS项目中COPY的,感觉很不错,使用简单方便,但是功能强大. 在线体验效果:http://cms.hovertr ...
- 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 ...
随机推荐
- 第1章 重构,第一个案例(3):运用多态取代switch
3. 运用多态取代与价格相关的条件逻辑 3.1 switch和“常客积分”代码的再次搬迁 (1)switch:最好不要在另一个对象的属性上运用switch语句 switch(getMovie().ge ...
- Mui沉浸模式以及状态栏颜色改变
沉浸模式只需要设置下就可以 ios: 打开应用的manifest.json文件,切换到代码视图,在plus -> distribute -> apple 下添加UIReserveSta ...
- SharePoint 2013常用开发工具分享
众所周知,一款好的开发工具不仅能提高项目开发效率,而且能够协助开发人员简化开发流程.本文汇总几款SharePoint 2013开发常用开发工具,希望能够对大家有所帮助.如果您有更好的工具,没有包含在本 ...
- memcached
Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度.Memcached ...
- string.IsNullOrEmpty和string.IsNullOrWhiteSpace方法的区别
string.IsNullOrEmpty 都知道,这个功能是判断字符串是否为:null或者string.Empty.如果是如"\t"这样的字符就返回false了,为了达到判断过滤这 ...
- JS:offsetWidth\offsetleft 等图文解释
网页可见区域宽: document.body.clientWidth;网页可见区域高: document.body.clientHeight;网页可见区域宽: document.body.of ...
- 如何修复Ubuntu 14.04 系统设置丢失的问题
其实遇到这个问题的一个最主要的原因是之前执行过卸载ibus输入法的操作,所以为了避免这个问题请不要卸载ibus输入法,大家依然可以安装fcitx输入法使用. 如果已经出现了这个问题,那该怎么解决呢?很 ...
- CSS3选择器:nth-of-type
碰到了个选择器,:nth-of-type <!DOCTYPE html> <html> <head> <meta http-equiv="Conte ...
- Alpha阶段第一次Scrum Meeting
Scrum Meeting Alpha 情况简述 Alpha阶段第一次Scrum Meeting 敏捷开发起始时间 2016/10/18 00:00 敏捷开发终止时间 2016/10/20 00: ...
- python标准模块(三)
本文会涉及到的模块: subprocess logging 1. subprocess 可以执行shell命令的相关模块和函数有: os.system os.spawn os.popen --废弃 p ...