封装好的PHP分页类,简单好用--在开源看到的,取回来自己用
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 '下一页 »';
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 '« 上一页';
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[] = ' ... ';
}
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[] = ' ... ';
}
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分页类,简单好用--在开源看到的,取回来自己用的更多相关文章
- 好用的ASP.NET 分页类 简单好用 支持 AJAX 自定义文字
在做网站没用 JS UI控件时 很实用 用法: var ps=new PageString(); /*可选参数*/ ps.SetIsEnglish = true;// 是否是英文 (默认:false) ...
- php分页类代码带分页样式效果(转)
php分页类代码,有漂亮的分页样式风格 时间:2016-03-16 09:16:03来源:网络 导读:不错的php分页类代码,将类文件与分页样式嵌入,实现php查询结果的精美分页,对研究php分页原理 ...
- 自定义MVC框架之工具类-分页类的封装
以前写过一个MVC框架,封装的有点low,经过一段时间的沉淀,打算重新改造下,之前这篇文章封装过一个验证码类. 这次重新改造MVC有几个很大的收获 >全部代码都是用Ubuntu+Vim编写,以前 ...
- Django分页类的封装
Django分页类的封装 Django ORM 封装 之前有提到(Django分页的实现)会多次用到分页,将分页功能封装起来能极大提高效率. 其实不是很难,就是将之前实现的代码全都放到类中,将需要用 ...
- 简单实用的原生PHP分页类
一款简单实用的原生PHP分页类,分页按钮样式简洁美观,页码多的时候显示“...”,也是挺多网站用的效果 核心分页代码 include_once("config.php"); req ...
- php 简单分页类
/** file: page.class.php 完美分页类 Page */ class Page { private $total; //数据表中总记录数 privat ...
- PHP简单漂亮的分页类
本文介绍一款原生的PHP分页类,分页样式有点类似bootstrap. <?php /* * ********************************************* * @类名 ...
- php四个常用类封装 :MySQL类、 分页类、缩略图类、上传类;;分页例子;
Mysql类 <?php /** * Mysql类 */ class Mysql{ private static $link = null;//数据库连接 /** * 私有的构造方法 */ pr ...
- 一个简单的php分页类代码(转载)
入门级php分页类 原文地址:http://www.xfcodes.com/php/fenye/3608.htm 时间:2015-12-16 20:52:00来源:网络 php分页类. 复制代码代码如 ...
随机推荐
- 加密混淆.Net程序
记录在这里,以便学习使用! 一 加密混淆.Net程序 打开Intellilock进处此界面 点击add按钮加入你要操作的程序集, Merge Assemblie 可以合并当前程序集列表中的程序集为一个 ...
- 数学概念——A 几何概型
You are going from Dhaka to Chittagong by train and you came to know one of your old friends is goin ...
- 使用Ant自动化发布web工程
通常在web应用程序需要上线或测试时通常需要部署到类似于tomcat.jboss.weblogic或webspare这些web服务器中,为避免手动部署带来的操作繁琐.易出错等问题,这里使用ant进行标 ...
- Java 内省 Introspector
操纵类的属性,有两种方法 反射 内省 面向对象的编程中,对于用户提交过来的数据,要封装成一个javaBean,也就是对象 其中Bean的属性不是由字段来决定的,而是由get和Set方法来决定的 pub ...
- SSH动态查询封装接口介绍
SSH动态查询封装接口介绍 1.查询记录总条数 public int count(Class c,Object[][] eq,Object[][] like,String[] group,String ...
- windows7实用快捷键 分类: windows常用小技巧 2014-04-18 14:34 169人阅读 评论(0) 收藏
几个比较实用的快捷键 windows键:简写成win win+ 方向键上下,可以使当前窗体放大或缩小 win+ 方向键左右,可以使当前窗体悬靠在左边或右边 win+Home 仅保留当前窗体 ...
- android scrollview组件禁止滑动的方法
xml配置: android:id="@+id/sc_freement" android:layout_width="fill ...
- WinForm(C#)CheckedlistBox绑定数据,并获得选中的值(ValueMember)和显示文本(DisplayMember)
本文中我将和大家讨论关于在WinForm开发中给CheckedlistBox空间绑定数据源,并获取控件中选中的所有元素的显示文本(DisplayMember)和对应的实际值(ValueMember)的 ...
- Lucene中string docvalues使用utf-16的优化
原来的string docvalues使用utf-8编码,载入时转码花费大量时间,我们把转码实现从new String(bytes, "UTF-8")改用lucene的bytesR ...
- nginx url 重写 [转]
本文转自 http://www.jbxue.com/article/2187.html 本文介绍nginx URL重写的相关知识,包括301重定向的内容等,希望对大家有所帮助. nginx rewri ...