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 ...
随机推荐
- IEnumerable,IQueryable之前世今生
来自于:http://www.cnblogs.com/chengxiaohui/articles/2088967.html IEnumerable<T>在.Net2.0中我们已经很熟悉了. ...
- BZOJ1002[FJOI2007]轮状病毒
Description 轮状病毒有很多变种,所有轮状病毒的变种都是从一个轮状基产生的.一个N轮状基由圆环上N个不同的基原子 和圆心处一个核原子构成的,2个原子之间的边表示这2个原子之间的信息通道.如下 ...
- WebService基本使用
不使用任何框架,纯粹使用JDK开发一个服务端与客户端 服务端 package org.zln.ws.server;import org.slf4j.Logger;import org.slf4j.Lo ...
- [译]React Context
欢迎各位指导与讨论 : ) 前言 由于笔者英语和技术水平有限,有不足的地方恳请各位指出.我会及时修正的 O(∩_∩)O 当前React版本 15.0.1 时间 2016/4/25 正文 React一个 ...
- gradle项目中如何支持java与scala混合使用?
之前写过一篇maven项目中java与scala如何混用,今天来看看gradle项目中如何达到同样的效果: 一.目录结构 基本上跟maven一样,tips:这一堆目录结构不用死记,后面会讲如何用gra ...
- win7 装了VB虚拟机 开始挺好用 后来突然就打不开了 提示如下错误:(如图)创建 COM 对象失败.
创建 COM 对象失败. 应用程序将被中断. Start tag expected, '<' not found. Location: 'C:\Users\Mike/.VirtualBox\Vi ...
- SharpPcap网络包捕获框架的使用--实例代码在vs2005调试通过
转自:http://hi.baidu.com/boyxgb/blog/item/89ac86fbdff5f82c4e4aea2e.html 由于项目的需要,要从终端与服务器的通讯数据中获取终端硬件状态 ...
- 每个程序员都会的35个jQuery小技巧!
1. 禁止右键点击$(document).ready(function(){ $(document).bind("contextmenu",function(e){ return ...
- UITableView的使用
参考:IOS7.0 programming cookbook. http://www.cnblogs.com/kenshincui/p/3931948.html http://blog.csdn.ne ...
- facebook 用curl获取用户资料
用facebook获取用户信息 $graph_url= "https://graph.facebook.com/me?scope=email&fields=id,name,email ...