在页面上显示大量数据,是WEB项目中很常见的一个作法,但限于屏幕的大小,为了便于用户阅读,我们通常需要将数据分页显示,所以分页功能是大部份项目不可缺少的。PEAR::Pager是一个功能强大的分页类,使用非常方便。
系统需求:PHP4.3.* /PHP5,PEAR::Pager
PEAR::Pager有两种分页显示模式,一是Jumping,二是Sliding。两者有什么区别,我们来看两个例子:
Jumping.php
require_once 'Pager/Pager.php';
$params = array(
'mode' => 'Jumping',
'perPage' => 3,
'delta' => 5,
'itemData' => array('a','b','c','d','e','z','ty','xc','fg','fg','jk','hj','ty','xc','e','z','ty','xc','fg','fg','jk','hj','ty','xc')
);
echo "
当前分页模式:".$params['mode'];
echo "
每页显示数据条数:".$params['perPage'];
echo "
显示页数:".$params['delta'];
echo "
详细数据数组:";
print_r($params['itemData']);
$pager = & Pager::factory($params);
$data = $pager->getPageData();
$links = $pager->getLinks();
echo "
最后效果:";
echo $links['all'];
echo $pager->linkTags;
echo '
当前页的数据: ' ;
echo "
"; <br>print_r($data); <br>echo "";
echo "其它类方法得到的数据:
";
echo 'getCurrentPageID()...: ';
var_dump($pager->getCurrentPageID());
echo "
";
echo 'getNextPageID()......: ';
var_dump($pager->getNextPageID());
echo "
";
echo 'getPreviousPageID()..: ';
var_dump($pager->getPreviousPageID());
echo "
";
echo 'numItems()...........: ';
var_dump($pager->numItems());
echo "
";
echo 'numPages()...........: ';
var_dump($pager->numPages());
echo "
";
echo 'isFirstPage()........: ';
var_dump($pager->isFirstPage());
echo "
";
echo 'isLastPage().........: ';
var_dump($pager->isLastPage());
echo "
";
echo 'isLastPageComplete().: ';
var_dump($pager->isLastPageComplete());
echo "
";
echo '$pager->range........: ';
var_dump($pager->range); echo "
";
?>
运行结果如下图:
Sliding.php
require_once 'Pager/Pager.php';
$month = 'september';
$params = array(
'mode' => 'Sliding',
'append' => false,
'urlVar' => 'num',
'path' => 'http://localhost/' . $month,
'fileName' => 'art%d.html', //%d将被替换成当前页的数字
'itemData' => array('a','b','c','d','e','z','ty','xc','fg','fg','jk','hj','ty','xc','e','z','ty','xc','fg','fg','jk','hj','ty','xc'),
'perPage' => 3
);
echo "
当前分页模式:".$params['mode'];
echo "
每页显示数据条数:".$params['perPage'];
echo "
链接指向路径:".$params['path'];
echo "
链接指向文件名:".$params['fileName'];
echo "
详细数据数组:";
print_r($params['itemData']);
$pager = & Pager::factory($params);
$data = $pager->getPageData();
echo "
最后效果:";
echo $pager->links;
echo '
当前页的数据: ' ;
echo "
"; <br>echo 'Data for current page: '; print_r($data); <br>echo "";
echo "其它类方法得到的数据:
";
echo 'getCurrentPageID()...: ';
var_dump($pager->getCurrentPageID());
echo "
";
echo 'getNextPageID()......: ';
var_dump($pager->getNextPageID());
echo "
";
echo 'getPreviousPageID()..: ';
var_dump($pager->getPreviousPageID());
echo "
";
echo 'numItems()...........: ';
var_dump($pager->numItems());
echo "
";
echo 'numPages()...........: ';
var_dump($pager->numPages());
echo "
";
echo 'isFirstPage()........: ';
var_dump($pager->isFirstPage());
echo "
";
echo 'isLastPage().........: ';
var_dump($pager->isLastPage());
echo "
";
echo 'isLastPageComplete().: ';
var_dump($pager->isLastPageComplete());
echo "
";
echo '$pager->range........: ';
var_dump($pager->range); echo "
";
?>
运行结果如下图:
运行以上代码,可以发现,Jumping是跳跃式前进,一次翻几页,而Sliding是逐页地前进。
在例子中可以看到PEAR::Pager提供了很多类方法,可以返回我们所需要的数据,如当前页ID,下一页ID,当前页上数据条数等等。
下面将所有类方法的作用列出,供参考:
Pager::Pager() – 构造函数 参数为二维数组 详见上面的示例
Pager::factory() -- 建立一个Pager对象
Pager::getCurrentPageID() 返回当前页的ID
Pager::getLinks() 返回某个页所对应的链接 参数为页面的ID 参数为空则返回当前页的链接
Pager::getNextPageID() 返回下一页的ID
Pager::getOffsetByPageId() 返回记录范围
例如当前页为1,每页显示10条,则返回(1,10)
如当前页为2,每页显示8条,则返回(8,16)
Pager::getPageData() 以数组形式返回当前页数据
Pager::getPageIdByOffset() 根据记录范围返回页面ID
本方法仅当分页模式为Jumping时有效
Pager::getPageRangeByPageId() 返回某个页面所在的记录范围
例如模式为Jumping时,如果pageId=3 , delta=10,则返回(1,10),如果pageId=3 , delta=10,则仍然返回(1,10),因为1,3都在10的范围之内。如果pageId =14,则返回(10,20),
因为14落于10,20之间。
Pager::getPreviousPageID() 得到前一页的ID
Pager::getperpageselectbox() 返回一个XHTML的Select标签字符串
可用于直接跳转到某个页面
Pager::isFirstPage() 判断当前页是否第一页
Pager::isLastPage() 判断当前页是否最后第一页
Pager::isLastPageComplete() 判断是否到达最后一页
Pager::numItems() 返回总记录数
Pager::numPages() 返回总页数
其它功能及用法请参看PEAR::Pager文档:

PHP type prompts to improve code quality and readability. 1) Scalar type tips: Since PHP7.0, basic data types are allowed to be specified in function parameters, such as int, float, etc. 2) Return type prompt: Ensure the consistency of the function return value type. 3) Union type prompt: Since PHP8.0, multiple types are allowed to be specified in function parameters or return values. 4) Nullable type prompt: Allows to include null values and handle functions that may return null values.

In PHP, use the clone keyword to create a copy of the object and customize the cloning behavior through the \_\_clone magic method. 1. Use the clone keyword to make a shallow copy, cloning the object's properties but not the object's properties. 2. The \_\_clone method can deeply copy nested objects to avoid shallow copying problems. 3. Pay attention to avoid circular references and performance problems in cloning, and optimize cloning operations to improve efficiency.

PHP is suitable for web development and content management systems, and Python is suitable for data science, machine learning and automation scripts. 1.PHP performs well in building fast and scalable websites and applications and is commonly used in CMS such as WordPress. 2. Python has performed outstandingly in the fields of data science and machine learning, with rich libraries such as NumPy and TensorFlow.

Key players in HTTP cache headers include Cache-Control, ETag, and Last-Modified. 1.Cache-Control is used to control caching policies. Example: Cache-Control:max-age=3600,public. 2. ETag verifies resource changes through unique identifiers, example: ETag: "686897696a7c876b7e". 3.Last-Modified indicates the resource's last modification time, example: Last-Modified:Wed,21Oct201507:28:00GMT.

In PHP, password_hash and password_verify functions should be used to implement secure password hashing, and MD5 or SHA1 should not be used. 1) password_hash generates a hash containing salt values to enhance security. 2) Password_verify verify password and ensure security by comparing hash values. 3) MD5 and SHA1 are vulnerable and lack salt values, and are not suitable for modern password security.

PHP is a server-side scripting language used for dynamic web development and server-side applications. 1.PHP is an interpreted language that does not require compilation and is suitable for rapid development. 2. PHP code is embedded in HTML, making it easy to develop web pages. 3. PHP processes server-side logic, generates HTML output, and supports user interaction and data processing. 4. PHP can interact with the database, process form submission, and execute server-side tasks.

PHP has shaped the network over the past few decades and will continue to play an important role in web development. 1) PHP originated in 1994 and has become the first choice for developers due to its ease of use and seamless integration with MySQL. 2) Its core functions include generating dynamic content and integrating with the database, allowing the website to be updated in real time and displayed in personalized manner. 3) The wide application and ecosystem of PHP have driven its long-term impact, but it also faces version updates and security challenges. 4) Performance improvements in recent years, such as the release of PHP7, enable it to compete with modern languages. 5) In the future, PHP needs to deal with new challenges such as containerization and microservices, but its flexibility and active community make it adaptable.

The core benefits of PHP include ease of learning, strong web development support, rich libraries and frameworks, high performance and scalability, cross-platform compatibility, and cost-effectiveness. 1) Easy to learn and use, suitable for beginners; 2) Good integration with web servers and supports multiple databases; 3) Have powerful frameworks such as Laravel; 4) High performance can be achieved through optimization; 5) Support multiple operating systems; 6) Open source to reduce development costs.


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Zend Studio 13.0.1
Powerful PHP integrated development environment

SublimeText3 English version
Recommended: Win version, supports code prompts!

Dreamweaver CS6
Visual web development tools

MantisBT
Mantis is an easy-to-deploy web-based defect tracking tool designed to aid in product defect tracking. It requires PHP, MySQL and a web server. Check out our demo and hosting services.

VSCode Windows 64-bit Download
A free and powerful IDE editor launched by Microsoft