class Pagination  独立分页类 
调用方式: 
$pagenation = new Pagination( 4, 10, 200 ); // 4(第一个参数) = currentPage, 10(第二个参数) = pageSize, 200(第三个参数) = 总数 
$pagenation->set_link( 'http://www.360hqb.com' ); 
$pagenation->show();

<?php
/**
* class Pagination
*
* 独立分页类
* 调用方式:
* $pagenation = new Pagination( 4, 10, 200 ); // 4(第一个参数) = currentPage, 10(第二个参数) = pageSize, 200(第三个参数) = 总数
* $pagenation->set_link( 'http://www.360hqb.com' );
* $pagenation->show();
*/
class Java_Pagination
{
protected $_total = 0;
protected $_total_page = 0;
protected $_page = 1;
protected $_page_size = 10;
protected $_link = '';
protected $_grep = 3; protected $_admin = false;
protected $_css_next = 'next-page';
protected $_css_prev = 'prev-page';
protected $_css_curr = 'curr-page';
protected $_css_page = 'page-nav inline-block'; public function __construct ( $page, $page_size, $total, $admin = false )
{
$this->set_current_page( $page );
$this->set_page_size( $page_size );
$this->set_total( $total ); if ( $admin )
{
$this->_admin = $admin;
}
//$this->_link = $_SERVER['REQUEST_URI'];
$this->set_link( $_SERVER['REQUEST_URI'] );
} public function set_link ( $link, $is_shop = TRUE )
{
$len = strlen( $link );
$substr = substr( $link, $len - 1 );
if ( '&' == $substr )
{
$link = substr( $link, 0, $len - 1 );
}
$pos = strpos( $link, '?' );
if ( $pos )
{
$link = substr( $link, 0, $pos );
}
if ( !empty( $_GET ) )
{
$link .= '?';
foreach ( $_GET as $k=>$v )
{
if ( 'page' == strtolower( $k ) )
{
continue;
}
$link .= $k.'='.$v.'&';
}
$len = strlen( $link );
$substr = substr( $link, $len - 1 );
if ( '&' == $substr )
{
$link = substr( $link, 0, $len - 1);
}
}
elseif ( isset( $_SERVER['QUERY_STRING'] ) AND !empty( $_SERVER['QUERY_STRING'] ) AND $is_shop )
{
$link .= '?'.$_SERVER['QUERY_STRING'];
$len = strlen( $link );
$substr = substr( $link, $len - 1 );
if ( '&' == $substr )
{
$link = substr( $link, 0, $len - 1);
}
}
$this->_link = $link;
} public function set_page_size ( $page_size )
{
if ( empty( $page_size ) )
{
$this->_page_size = 10;
}
else
{
$this->_page_size = (int) $page_size;
}
} public function set_total ( $total )
{
$page_size = empty( $this->_page_size )?10:$this->_page_size;
$this->_total = $total;
if ( 0 == ( $total % $page_size ) )
{
$this->_total_page = intval( $total / $page_size );
}
else
{
$this->_total_page = intval( $total / $page_size ) + 1;
}
if ( $this->_page > $this->_total_page )
{
$this->_page = $this->_total_page;
}
} public function set_current_page ( $page )
{
if ( empty( $page ) )
{
$this->_page = 1;
}
else
{
$this->_page = (int) $page;
}
} public function get_next_page_btn ()
{
if ( $this->_page < $this->_total_page )
{
$link = '';
if ( strpos( $this->_link, '?' ) )
{
$link = $this->_link.'&page='.( $this->_page + 1 );
}
else
{
$link = $this->_link.'?page='.( $this->_page + 1 );
}
if ( $this->_admin )
{
return '<a href="'.$link.'">下一页</a>';
}
else
{
return '<li class="'.$this->_css_next.'"><a href="'.$link.'">下一页</a></li>';
}
}
if ( $this->_admin )
return '下一页&nbsp;»';
else
return '';
} public function get_prev_page_btn ()
{
if ( $this->_page > 1 )
{
$link = '';
if ( strpos( $this->_link, '?' ) )
{
$link = $this->_link.'&page='.( $this->_page - 1 );
}
else
{
$link = $this->_link.'?page='.( $this->_page - 1 );
}
if ( $this->_admin )
{
return '<a href="'.$link.'">上一页</a>';
}
else
{
return '<li class="'.$this->_css_prev.'"><a href="'.$link.'">上一页</a></li>';
}
}
if ( $this->_admin )
return '«&nbsp;上一页';
else
return '';
} public function get_current_page ()
{
if ( $this->_admin )
return '<strong>'.$this->_page.'</strong>';
else
return '<li class="'.$this->_css_curr.'"><a class="selected" href="javascript:void(0)">'.$this->_page.'</a></li>';
} public function get_page_link ( $page )
{
$link = '';
if ( strpos( $this->_link, '?' ) )
{
$link = $this->_link.'&page='.$page;
}
else
{
$link = $this->_link.'?page='.$page;
}
if ( $this->_admin )
{
return '<a href="'.$link.'">'.$page.'</a>';
}
else
{
return '<li><a href="'.$link.'">'.$page.'</a></li>';
}
} public function get_prev_pages ()
{
$pages = array();
$begin = $this->_page - $this->_grep;
if ( $begin < 1 )
{
$begin = 1;
}
elseif ( $begin > 2 )
{
$pages[] = $this->get_page_link( 1 );
if ( $this->_admin )
{
$pages[] = '&nbsp;...&nbsp;';
}
else
{
$pages[] = '<li>...</li>';
}
}
elseif ( $begin == 2 )
{
$pages[] = $this->get_page_link( 1 );
}
for ( $i = $begin; $i < $this->_page; $i++ )
{
$pages[] = $this->get_page_link( $i );
}
return $pages;
} public function get_next_pages ()
{
$pages = array();
$begin = $this->_page + 1;
if ( $begin < $this->_total_page )
{
$end = $begin + $this->_grep;
if ( $end > $this->_total_page )
{
$end = $this->_total_page;
}
for ( $i = $begin; $i < $end; $i++ )
{
$pages[] = $this->get_page_link( $i );
}
if ( $i < $this->_total_page )
{
if ( $this->_admin )
{
$pages[] = '&nbsp;...&nbsp;';
}
else
{
$pages[] = '<li>...</li>';
}
$pages[] = $this->get_page_link( $this->_total_page );
}
else
{
$pages[] = $this->get_page_link( $this->_total_page );
}
}
elseif ( $begin == $this->_total_page )
{
$pages[] = $this->get_page_link( $this->_total_page );
}
return $pages;
} public function show ()
{
if ( $this->_total_page <= 1 )
{
return;
}
if ( $this->_admin )
{
echo '<p class="pagination">';
echo '<span>共有'.$this->_total.'条记录</span>';
}
else
{
echo '<ul class="'.$this->_css_page.'">';
}
echo $this->get_prev_page_btn();
$prev_pages = $this->get_prev_pages ();
if ( !empty( $prev_pages ) )
{
foreach ( $prev_pages as $page )
{
echo $page;
}
}
echo $this->get_current_page();
$next_pages = $this->get_next_pages ();
if ( !empty( $next_pages ) )
{
foreach ( $next_pages as $page )
{
echo $page;
}
}
echo $this->get_next_page_btn();
if ( $this->_admin )
{
echo '</p>';
}
else
{
echo '</ul>';
}
}
}

封装好的PHP分页类,简单好用--在开源看到的,取回来自己用的更多相关文章

  1. 好用的ASP.NET 分页类 简单好用 支持 AJAX 自定义文字

    在做网站没用 JS UI控件时 很实用 用法: var ps=new PageString(); /*可选参数*/ ps.SetIsEnglish = true;// 是否是英文 (默认:false) ...

  2. php分页类代码带分页样式效果(转)

    php分页类代码,有漂亮的分页样式风格 时间:2016-03-16 09:16:03来源:网络 导读:不错的php分页类代码,将类文件与分页样式嵌入,实现php查询结果的精美分页,对研究php分页原理 ...

  3. 自定义MVC框架之工具类-分页类的封装

    以前写过一个MVC框架,封装的有点low,经过一段时间的沉淀,打算重新改造下,之前这篇文章封装过一个验证码类. 这次重新改造MVC有几个很大的收获 >全部代码都是用Ubuntu+Vim编写,以前 ...

  4. Django分页类的封装

    Django分页类的封装 Django ORM  封装 之前有提到(Django分页的实现)会多次用到分页,将分页功能封装起来能极大提高效率. 其实不是很难,就是将之前实现的代码全都放到类中,将需要用 ...

  5. 简单实用的原生PHP分页类

    一款简单实用的原生PHP分页类,分页按钮样式简洁美观,页码多的时候显示“...”,也是挺多网站用的效果 核心分页代码 include_once("config.php"); req ...

  6. php 简单分页类

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

  7. PHP简单漂亮的分页类

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

  8. php四个常用类封装 :MySQL类、 分页类、缩略图类、上传类;;分页例子;

    Mysql类 <?php /** * Mysql类 */ class Mysql{ private static $link = null;//数据库连接 /** * 私有的构造方法 */ pr ...

  9. 一个简单的php分页类代码(转载)

    入门级php分页类 原文地址:http://www.xfcodes.com/php/fenye/3608.htm 时间:2015-12-16 20:52:00来源:网络 php分页类. 复制代码代码如 ...

随机推荐

  1. Hierarchy Viewer显示视图性能指标

    Hierarchy Viewer默认打开“Tree View”窗口无法显示显示Performance indicators: 但选中根视图再点击按钮“Obtain layout times for t ...

  2. SPBF(队列优化的Bellman-Foord)

  3. [Locked] Longest Substring with At Most Two Distinct Characters

    Longest Substring with At Most Two Distinct Characters Given a string, find the length of the longes ...

  4. 《ACM国际大学生程序设计竞赛题解Ⅰ》——基础编程题

    这个专栏开始介绍一些<ACM国际大学生程序设计竞赛题解>上的竞赛题目,读者可以配合zju/poj/uva的在线测评系统提交代码(今天zoj貌似崩了). 其实看书名也能看出来这本书的思路,就 ...

  5. C#与java中的集合区别

    集合一般的操作       插入: add       删除: remove       查找: contains,remove java中的集合 注意哪些是接口,哪些是实现类 使用集合的时候 1. ...

  6. 优化exp/imp导入导出速度大全

    .exp  个相关的参数:DIRECT和RECORDLENGTH参数. DIRECT参数定义了导出是使用直接路径方式(DIRECT=Y),还是常规路径方式(DIRECT=N).常规路径导出使用SQL ...

  7. 高效的DDoS攻击探测与分析工具——FastNetMon

    一.简介 FastNetMon这是一个基于多种抓包引擎(NetFlow, IPFIX, sFLOW, netmap, PF_RING, PCAP)的DoS/DDoS攻击高效分析工具,可以探测和分析网络 ...

  8. Java NIO框架Netty demo

    Netty是什么 Netty是一个java开源框架.Netty提供异步的.事件驱动的网络应用程序框架和工具,用以快速开发高性能.高可靠性的网络服务器和客户端程序. 也就是说,Netty 是一个基于NI ...

  9. 《Web 前端面试指南》2、JavaScript 的 Bind 函数进阶

    使用 Bind() 设置方法中 this 对象 //<button>获取随机的人</button>​ //<input type="text"> ...

  10. linux 屏幕亮度调整命令

    我的Fujitsu S7211的笔记本屏幕显示在Ubuntu 10.04不如在Vista下明亮,一直以为是驱动的问题.后来从老外的博客中,发现了这个亮度其实可以调节. 2种方法: 1. 调节屏幕对比度 ...