


PHP general paging class page.php [imitation google paging]_PHP tutorial
page.php
/**
** General PHP paging class. (Imitate Google style)
** Only need to provide two parameters: the total number of records and the number of displays per page. (Detailed instructions are attached..)
** There is no need to specify the URL, the link is generated by the program. Convenient for paging search results.
** The form is submitted using the GET method, which ensures that URL parameters are not lost during operations such as querying and deleting.
**/
class Pager{
//IE address bar address
var $url;
//Total number of records
var $countall;
//Total number of pages
var $page;
//Paging number link
var $thestr;
// Home page, previous page link
var $backstr;
//Last page, next page link
var $nextstr;
//Current page number
var $pg;
/ /Display the number of records per page
var $countlist;
//Page turning style
var $style;
//Constructor, this function is automatically executed when instantiating this class
function Pager($countall,$countlist,$style="page"){
//When the number of records and the number displayed on each page cannot be integrated, the number of pages is taken as remainder and 1 is added
$this->countall = $ countall;
$this->countlist = $countlist;
$this->style=$style;
if ($this->countall%$this->countlist!=0) {
$this->page=sprintf("%d",$this->countall/$this->countlist)+1;
}else{
$this->page =$this->countall/$this->countlist;
}
$this->pg=$_GET["pg"];
//Guarantee that pg is not specified In the case of starting from page 1
if (!ereg("^[1-9][0-9]*$",$this->pg) || empty($this->pg )){
$this->pg=1;
}
//The page number exceeds the maximum range, take the maximum value
if ($this->pg>$this->page ){
$this->pg=$this->page;
}
//Get the current URL. For specific implementation, please see the function entity at the bottom
$this->url = Pager::getUrl();
//Replace the incorrectly formatted page number with the correct page number
if(isset($_GET[" pg"]) && $_GET["pg"]!=$this->pg){
$this->url=str_replace("?pg=".$_GET["pg"],"? pg=$this->pg",$this->url);
$this->url=str_replace("&pg=".$_GET["pg"],"&pg=$this-> ;pg",$this->url);
}
//Generate pagination in the form of numbers such as 12345.
if ($this->page<=10){
for ($i=1;$i<$this->page+1;$i++){
$this->thestr=$this->thestr.Pager::makepg($i,$this->pg);
}
}else{
if ($this->pg<=5){
for ($i=1;$i<10;$i++){
$this->thestr=$this->thestr.Pager::makepg($i,$this->pg);
}
}else{
if (6+$this->pg<=$this->page){
for ($i=$this->pg-4;$i<$this->pg+6;$i++){
$this->thestr=$this->thestr.Pager::makepg($i,$this->pg);
}
}else{
for ($i=$this->pg-4;$i<$this->page+1;$i++){
$this->thestr=$this->thestr.Pager::makepg($i,$this->pg);
}
}
}
}
//生成上页下页等文字链接
$this->backstr = Pager::gotoback($this->pg);
$this->nextstr = Pager::gotonext($this->pg,$this->page);
//echo (" 共".$this->countall." 条,每页".$this->countlist."条,共".$this->page."页".$this->backstr.$this->thestr.$this->nextstr);
}
//生成数字分页的辅助函数
function makepg($i,$pg){
if ($i==$pg){
return " ".$i."";
}else{
return " ".$i."";
}
}
//生成上一页等信息的函数
function gotoback($pg){
if ($pg-1>0){
return $this->gotoback=" 首页 上一页";
}else{
return $this->gotoback="首页 上一页 ";
}
}
//生成下一页等信息的函数
function gotonext($pg,$page){
if ($pg < $page){
return " 下一页 尾页";
}else{
return " 下一页 尾页";
}
}
//处理url中$pg的方法,用于自动生成pg=x
function replacepg($url,$flag,$i){
if ($flag == 1){
$temp_pg = $this->pg;
return str_replace("pg=".$temp_pg,"pg=".($this->pg+1),$url);
}else if($flag == 2) {
$temp_pg = $this->pg;
return str_replace("pg=".$temp_pg,"pg=".($this->pg-1),$url);
}else if($flag == 3) {
$temp_pg = $this->pg;
return str_replace("pg=".$temp_pg,"pg=1",$url);
}else if($flag == 4){
$temp_pg = $this->pg;
return str_replace("pg=".$temp_pg,"pg=".$this->page,$url);
}else if($flag == 5){
$temp_pg = $this->pg;
return str_replace("pg=".$temp_pg,"pg=".$i,$url);
}else{
return $url;
}
}
//获得当前URL的方法
function getUrl(){
$url="http://".$_SERVER["HTTP_HOST"];
if(isset($_SERVER["REQUEST_URI"])){
$url.=$_SERVER["REQUEST_URI"];
}else{
$url.=$_SERVER["PHP_SELF"];
if(!empty($_SERVER["QUERY_STRING"])){
$url.="?".$_SERVER["QUERY_STRING"];
}
}
//在当前的URL里加入pg=x字样
if (!ereg("(pg=|PG=|pG=|Pg=)", $url)){
if (!strpos($url,"?")){
$url = $url."?pg=1";
}else{
$url = $url."&pg=1";
}
}
return $url;
}
}
?>

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

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

PHP 8.4 brings several new features, security improvements, and performance improvements with healthy amounts of feature deprecations and removals. This guide explains how to install PHP 8.4 or upgrade to PHP 8.4 on Ubuntu, Debian, or their derivati

To work with date and time in cakephp4, we are going to make use of the available FrozenTime class.

To work on file upload we are going to use the form helper. Here, is an example for file upload.

CakePHP is an open-source framework for PHP. It is intended to make developing, deploying and maintaining applications much easier. CakePHP is based on a MVC-like architecture that is both powerful and easy to grasp. Models, Views, and Controllers gu

Google's AI Test Kitchen, which includes a suite of AI design tools for users to play with, has now opened up to users in well over 100 countries worldwide. This move marks the first time that many around the world will be able to use Imagen 3, Googl

Visual Studio Code, also known as VS Code, is a free source code editor — or integrated development environment (IDE) — available for all major operating systems. With a large collection of extensions for many programming languages, VS Code can be c

Validator can be created by adding the following two lines in the controller.

CakePHP is an open source MVC framework. It makes developing, deploying and maintaining applications much easier. CakePHP has a number of libraries to reduce the overload of most common tasks.
