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 ...
随机推荐
- 玩转Unity资源,对象和序列化(上)
这是一系列文章中的第二章,覆盖了Unity5的Assets,Resources和资源管理 本文将从Unity编辑器和运行时两个角度出发,主要探讨以下两方面内容:Unity序列化系统内部细节以及Unit ...
- break prefab instance的原理
prefab可无限apply: 如果把一个模块做成了prefab,这个prefab可能在同一个scene中添加多个,甚至添加到了多个scene中.设所有这些实例为instance(1),instanc ...
- 【转】NuGet.org 无法访问的解决方法
打开Nuget,发现又出问题了:未能解析此远程名称:’nuget.org’. 在浏览器中输入 http://nuget.org 会发现是无法打开的. 在cmd命令行里输入: nslookup nuge ...
- OrchardNoCMS vNext如何在VS2015下调试
由于VS2015还没有出来正式版,ASP.NET 5也是没有出来正式版.所以在你下载了OrchardNoCMS vNext的代码后,需要配置一些东西,才能启动项目,开始调试. 需要注意以下几点: 1. ...
- document.forms用法
1.FF中不能接受document.forms("formname")的使用,ie中可以 最好改成document.forms["formname"]的下标用法 ...
- NB-IoT的相关资料整理(基本概念,技术优势,典型案例和当前的进展)
人与人之间的通讯规模已近天花板,物与物的则刚刚进入增长快车道.随着可穿戴.车联网.智能抄表等新兴市场的开启,工业4.0.智慧城市.智慧农业等理念照进现实,万物互联的时代正加速到来. 一 ...
- WPF绘制简单常用的Path
写代码出身的我们经常需要使用一些简单 但是不是规则图形的Path 但限于美工功底有限 不知道怎么去画 下面我告诉大家一些简单的小技巧 用代码来画Path 个人还是比较喜欢用代码 因为数值控制的更精细 ...
- C#进阶系列——DDD领域驱动设计初探(三):仓储Repository(下)
前言:上篇介绍了下仓储的代码架构示例以及简单分析了仓储了使用优势.本章还是继续来完善下仓储的设计.上章说了,仓储的最主要作用的分离领域层和具体的技术架构,使得领域层更加专注领域逻辑.那么涉及到具体的实 ...
- javascript数据类型判断
javascript基本数据类型:原始类型 和 引用类型 原始类型(简单数据类型):String,Number,Boolean,Undefined,Null,Symbol(ES6新增) 引用类型( ...
- c#JS调用
using MSScriptControl; using System; using System.Collections.Generic; using System.Reflection; usin ...