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分页类的更多相关文章

  1. php实现的分页类

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

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

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

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

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

  4. php 简单分页类

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

  5. PHP简单漂亮的分页类

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

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

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

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

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

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

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

  9. webpy分页类 + 上传类

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

随机推荐

  1. print输出格式总结

    妈的,今天又被printf坑了一回...看来需要一次性总结书所有结果,省的又出现这样那样的麻烦.. #include<stdio.h> #include<string.h> # ...

  2. hibernate 数据处理

    1.Hibernate的配置文件 Hibernate.cfg.xml Dept.hbm.xml 2.CRUD的方法名称和参数类型 Save(Object obj) Delete(Object obj) ...

  3. Error:Execution failed for task ':app:transformClassesWithDexForDebug'解决记录

    转载请标明出处: http://blog.csdn.net/lxk_1993/article/details/50511172 本文出自:[lxk_1993的博客]:   3个错误non-zero e ...

  4. jenkins 入门教程(中)

    接上回继续,本文以我托管在bitbucket上的一个开源项目spring-boot-rest-framework做为演示,讲解如何创建自动化部署. 一.创建item 点击ok继续,item的详情页面很 ...

  5. 发布一个免费开源软件-- PAD流程图绘制软件PADFlowChart

    软件的可执行文件下载:PADFlowChart-exe.zip MD5校验码:91FCA9FEC9665FD09BEB3DA94ADC1CE6 SHA1校验码:ECD742AA3092A085AB07 ...

  6. URLConnection类介绍

    URLConnection是一个功能强大的抽象类,它表示指向URL指定资源的活动连接. 与URL类相比,它与服务器的交互提供了更多的控制机制.尤其服务器是HTTP服务器,可以使用URLConnecti ...

  7. linux 中文件权限和磁盘管理、linux服务器项目如何部署

    chmod chmod 421 xx.txt //4=r,2=w,1=x df 查看已挂载磁盘的总容量.使用容量.剩余容量等,可以不加任何参数,默认是按k为单位显示的 df常用参数有 –i -h -k ...

  8. C#-WinForm-用户控件如何获取父级窗体

    1:在父窗体中定义需要在用户控件中用到的控件属性,比如,我要修改一个textbox控件.页面定义这个textbox的属性是:protected System.Web.UI.WebControls.Te ...

  9. Message启动菜单个性化制作工具V1.0.3.1最终版

    特点及功能 1.可以全新制作Message启动菜单文件!也可以选择修改已存在的菜单文件,制作或预览时会提示以哪个菜单版本为核心启动菜单. 2.支持更换背景图片,也支持图片标准化防止启动时黑屏,在选择背 ...

  10. transition

    transition: all 所有属性都将获得过渡效果. property 定义应用过渡效果的 CSS 属性名称列表,列表以逗号分隔 transition-duration 规定完成过渡效果需要多少 ...