`
dcdc723
  • 浏览: 188108 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

PHP 通用分页类PagerBox及使用

    博客分类:
  • PHP
阅读更多
<?php
//使用实例
//$totalNum = 101; //总数(数据记录总数)
//$page = isset ( $_GET ['page'] ) ? $_GET ['page'] : 1; //当前页数
//$perPage = 10; //每页显示记录
//$url = $_SERVER['PHP_SELF'];//
//$length = 5;//每页显示步长
//$class = 'pages';//分页器CSS样式
//
//$pagerBox = new PagerBox ( );
//
//echo $pagerBox->getPager ( $totalNum, $page, $url, $perPage, $length, $class, TRUE );

class PagerBox {

	const PRE = '上一页';
	const NEXT = '下一页';

	/**
	 * 获取分页
	 *
	 * @param int $page 当前页
	 * @param int $totalNum    总页数
	 * @param int $perPage     每页显示记录数
	 * @param string $url      页面跳转URL
	 * @param int $length      页面步长值
	 * @param string $class    分页器样式
	 * @param bool $iscss      是否需要内置CSS
	 * @return html
	 */
	public function getPager($totalNum, $page, $url, $perPage, $length = '5', $class = 'pages', $default = FALSE) {
		$pageNum = ceil ( $totalNum / $perPage );
		$currentNum = ($page) ? $page : 1;
		$html = '';
		$html .= ($default) ? $this->getDefaultCss () : '';
		$html .= '<div class="' . $class . '">';
		$html .= $this->getPreHTML ( $page, $url );
		$html .= $this->getPages ( $page, $url, $currentNum, $length, $pageNum );
		$html .= $this->getNextHTML ( $page, $url, $pageNum );
		$html .= '</div>';
		return $html;
	}

	/**
	 * 获取上一页HTML
	 *
	 * @param int $page
	 * @param string $url
	 * @return html
	 */
	private function getPreHTML($page, $url) {
		$html = '';
		if (($page - 1) == 0) {
			$html .= $this->getHTML ( self::PRE );
		} else {
			$html .= $this->getHTML ( self::PRE, TRUE, $this->getURL ( $url, ($page - 1) ) );
		}
		return $html;
	}

	/**
	 * 获取页HTML
	 *
	 * @param int $page
	 * @param string $url
	 * @param int $currentNum
	 * @param int $pageLength
	 * @param int $pageNum
	 * @return html
	 */
	private function getPages($page, $url, $currentNum, $length, $pageNum) {
		$html = '';
		$start = ceil ( $page / $length );
		$start = ($start - 1) * $length + 1;
		$end = $start + $length - 1;
		$end = ($end > $pageNum) ? $pageNum : $end;

		for($i = $start; $i <= $end; $i ++) {
			if ($currentNum == $i) {
				$html .= $this->getHTML ( $i );
				continue;
			}
			$html .= $this->getHTML ( $i, TRUE, $this->getURL ( $url, $i ) );
		}
		return $html;
	}

	/**
	 * 获取下一页HTML
	 *
	 * @param int $page
	 * @param string $url
	 * @param int $pageNum
	 * @return html
	 */
	private function getNextHTML($page, $url, $pageNum) {
		$html = '';
		if (($page - $pageNum) == 0) {
			$html .= $this->getHTML ( self::NEXT );
		} else {
			$html .= $this->getHTML ( self::NEXT, TRUE, $this->getURL ( $url, ($page + 1) ) );
		}
		return $html;
	}

	/**
	 * 获取分页HTML
	 *
	 * @param string $text
	 * @param bool $isUrl
	 * @param string $url
	 * @param string $class
	 * @return html
	 */
	private function getHTML($text, $isUrl = FALSE, $url = '', $class = '') {
		if ($isUrl) {
			return $this->getAHtml ( $text, $url );
		}
		return $this->getSpanHtml ( $text, $class );
	}
	/**
	 * 创建URL
	 *
	 * @param string $url
	 * @param int $page
	 * @return url
	 */
	private function getURL($url, $page) {
		return $url . '?page=' . $page;
	}
	/**
	 * 创建span元素
	 *
	 * @param string $text
	 * @param string $class
	 * @return html
	 */
	private function getSpanHtml($text, $class = '') {
		$class = ($class) ? 'class=' . $class : '';
		return ' <span ' . $class . '>' . $text . '</span>';
	}
	/**
	 * 创建a元素
	 *
	 * @param string $text
	 * @param string $url
	 * @return html
	 */
	private function getAHtml($text, $url) {
		return ' <a href="' . $url . '">' . $text . '</a>';
	}
	/**
	 * 获取默认CSS样式
	 *
	 * @return css
	 */
	private function getDefaultCss() {
		$css = '<style type="text/css">';
		$css .= '.pages {margin:15px auto 0 auto;padding-right:40px;text-align:left;}
				 .pages a, .pages span {display:inline-block;*display:inline;zoom:1;padding:0px 6px;height:21px;line-height:21px;font-size:12px;font-weight:100;background:#F5F8FF;overflow:hidden;}
				 .pages a {border:1px solid #D8E0ED;}
				 .pages span {border:1px solid #dddddd;background:#FFFFFF;color:#999999;}
				 a{text-decoration:none;color:#666666;}
				 a:hover{text-decoration:underline;color:#0657b2;}';
		$css .= '</style>';
		return $css;
	}

}

?>

 

7
3
分享到:
评论
5 楼 马的脸猛鹿 2010-02-04  
能不能用啊?试一下先。。
4 楼 怕瓦落地 2010-02-04  

学习了。。
3 楼 dedemao 2010-02-04  
不错的东西。。很好。。学习中。
2 楼 tipnet 2010-02-04  
收集了。。
1 楼 dcdc723 2010-02-04  
分列显示
$i=0;
while($data=mysql_fetch_array($rs))
{
$i++;
echo '<td><table width=100 border=1><tr><td>标题</td></tr><tr><td><font color=red>'.$data['数据'].'</td></tr></table></td>';
if($i%4==0){echo "</tr>";}

}
echo "</table>";

相关推荐

    超强php分页打包 通用分页 万能分页 ajax分页 google分页

    本压缩包“超强php分页打包 通用分页 万能分页 ajax分页 google分页”提供了一系列的分页解决方案,包括了基本的PHP分页、通用的分页实现、以及结合AJAX技术的动态分页,旨在满足各种项目需求。下面将详细介绍这些...

    php分页类(通用)

    一个通用的PHP分页类可以帮助开发者快速实现这一功能,提高用户体验。下面我们将详细探讨PHP分页类的设计原理、实现方法以及`page.class.php`这个文件可能包含的关键知识点。 1. 分页类设计基础 - **属性**:分页...

    一个很好的分页类php分页类

    标题中的"一个很好的分页类php分页类"暗示我们这里有一个专门用于实现分页功能的PHP类。这个类可能包含了一系列方法,用于计算总页数、生成页码链接以及处理用户请求的特定页面。 `page.class.php`可能是这个分页类...

    asp.net通用分页类

    本教程将详细讲解如何创建一个通用的分页类,以便在多个页面中复用。 首先,我们需要理解分页的基本原理。分页主要是通过限制每次从数据库中取出的数据量来实现的。比如,每一页显示10条记录,当用户点击下一页时,...

    PHP通用分页程序

    **PHP通用分页程序** 在Web开发中,数据量大的时候,为了...通过学习和使用“小贤PHP通用分页程序”,开发者不仅可以理解PHP分页的基本概念,还能掌握如何在实际项目中实现高效、安全的分页功能,提升网站的用户体验。

    php封装的page分页类.zip

    "php封装的page分页类" 是一个专门用于处理这种需求的类库,它简化了PHP分页的实现过程,通过封装核心逻辑,使开发者能够快速、高效地实现分页功能。 首先,我们要理解分页的基本原理。在数据库查询中,如果一次性...

    java 通用分页 java 通用分页

    Java 通用分页详解 Java 通用分页是指在Java编程中对大量数据进行分页处理,以提高系统效率和性能。下面对Java通用分页的知识点进行详细说明: 1. 分页的必要性 在实际项目中,数据量可能非常大,直接查询所有...

    asp.net 通用分页类

    在ASP.NET开发中,分页是...`Pagination.cs`和`Default.aspx.cs`分别代表了分页类的实现和使用场景,通过这两个文件,我们可以构建出一个完整的分页解决方案,使得在ASP.NET应用程序中实现数据分页变得更加简单和高效。

    php通用分页类

    本文将详细介绍如何创建一个通用的PHP分页类,并结合提供的标签和压缩包文件名称,探讨其背后的原理和实现方法。 首先,我们需要理解分页的基本概念。分页通常涉及到两个关键参数:当前页数和每页显示的记录数。...

    PHP通用分页类 v1.0-源码.zip

    PHP通用分页类是Web开发中常用的一种工具,它能够帮助开发者在大量数据查询结果上实现高效的分页显示。PHP的分页类通常包括参数处理、数据库查询优化、URL生成等核心功能,使得用户可以方便地浏览数据集的各个部分,...

    Asp.net C#通用分页类

    本文将详细介绍如何使用C#编写一个通用的分页类,并利用`PagedDataSource`组件来实现`DataGrid`、`DataList`和`Repeater`等控件的数据分页功能。 #### 为什么要使用`PagedDataSource` `PagedDataSource`是ASP.NET...

    PHP通用分页类详解

    ### PHP通用分页类详解 #### 一、概述 在Web开发中,为了提升用户体验以及减轻服务器负担,分页功能的应用十分广泛。本篇将详细解析一个PHP通用分页类的实现逻辑及其应用场景。 #### 二、核心概念 1. **`$total`...

    sql Server 通用分页存储过程

    sql Server 通用分页存储过程 sql Server 通用分页存储过程 sql Server 通用分页存储过程 sql Server 通用分页存储过程

    php实现数据分页的通用方法类.zip

    为了使用这个类库,你需要解压“php实现数据分页的通用方法类.zip”文件,然后在你的项目中引入这个PHP文件,根据类库的API文档或注释来理解和使用它。注意,确保你的PHP环境已经满足类库的任何依赖要求,如特定的...

    PHP超强分页类

    1. **支持PHP4和PHP5**:这意味着开发者可以在不同版本的PHP环境中使用此分页类,无需担心兼容性问题。 2. **多种显示模式**:提供了四种默认的分页样式,用户可以根据实际需求选择合适的样式,也可以通过继承来自...

    ASP分页通用类 asp分页

    最后,关于`asp分页通用类.txt`这个文件,它可能包含了具体的分页类实现代码,包括如何构造SQL语句、生成分页链接的逻辑,以及可能的优化策略,比如缓存页码和数据,以减少对数据库的多次访问。阅读和理解这个文件的...

    BluePage通用分页类助开发者提高开发效率1

    ### BluePage通用分页类详解 #### 一、引言 在现代Web开发中,分页功能是一项不可或缺的技术。无论是数据库查询结果的分页展示,还是长篇文章的分页阅读,都需要一个高效、灵活的分页解决方案。BluePage正是为了...

    jquery通用分页类

    本资源提供了一个基于jQuery的通用分页类,它支持两种不同的样式,适应不同设计需求。现在,我们将详细探讨jQuery分页类的工作原理、实现方式以及如何在实际项目中应用。 首先,jQuery分页类是通过JavaScript库...

    php智能分页类让你能快速的去设置页面的分页

    首先,标题提到的“php智能分页类”是一个预封装的PHP类,它的设计目的是简化分页的实现过程,避免开发者手动编写复杂的SQL查询和HTML代码。这样的类通常会包含以下关键组件: 1. **参数设置**:允许开发者设定如每...

    PHP万能分页类,多种样式

    【PHP万能分页类】是一种在Web开发中常见的组件,尤其在处理大量数据时,分页能够有效地提高用户体验,避免一次性加载过多内容导致页面响应变慢。这个压缩包提供了PHP实现的分页功能,同时包含了多种样式供开发者...

Global site tag (gtag.js) - Google Analytics