Home >Backend Development >PHP Tutorial >PHP general paging class page.php [imitation google paging]_PHP tutorial

PHP general paging class page.php [imitation google paging]_PHP tutorial

WBOY
WBOYOriginal
2016-07-21 15:50:03901browse

page.php

Copy code The code is as follows:


/**
** 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;
}
}
?>

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/319430.htmlTechArticlepage.php 复制代码 代码如下: ?php /** ** 通用php分页类。(仿Google样式) ** 只需提供记录总数与每页显示数两个参数。(已附详细使用说明..) ** 无需...
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn