2023年6月21日发(作者:)

漂亮的php分页代码,⼀个完美的php分页类代码⼀个完美的php分页类代码PHP实例为⼤家分享了php分页类的具体代码,供⼤家参考,具体内容如下 "条记录",'prev' => "上⼀页",'next' => "下⼀页",'first'=> "⾸页",'last' => "末页");//在分页信息中显⽰内容,可以⾃⼰通过set()⽅法设置private $listNum = 10; //默认分页列表显⽰的个数/**构造⽅法,可以设置分页类的属性@param int $total 计算分页的总记录数@param int $listRows 可选的,设置每页需要显⽰的记录数,默认为25条@param mixed $query 可选的,为向⽬标页⾯传递参数,可以是数组,也可以是查询字符串格式@param bool $ord 可选的,默认值为true, 页⾯从第⼀页开始显⽰,false则为最后⼀页*/public function __construct($total, $listRows=25, $query="", $ord=true){$this->total = $total;$this->listRows = $listRows;$this->uri = $this->getUri($query);$this->pageNum = ceil($this->total / $this->listRows);/*以下判断⽤来设置当前⾯*/if(!empty($_GET["page"])) {$page = $_GET["page"];}else{if($ord)$page = 1;else$page = $this->pageNum;}if($total > 0) {if(preg_match('/D/', $page) ){$this->page = 1;}else{$this->page = $page;}}else{$this->page = 0;}$this->limit = "LIMIT ".$this->setLimit();}/**⽤于设置显⽰分页的信息,可以进⾏连贯操作@param string $param 是成员属性数组config的下标@param string $value ⽤于设置config下标对应的元素值@return object 返回本对象⾃⼰$this, ⽤于连惯操作*/function set($param, $value){if(array_key_exists($param, $this->config)){$this->config[$param] = $value;}return $this;}/* 不是直接去调⽤,通过该⽅法,可以使⽤在对象外部直接获取私有成员属性limit和page的值 */function __get($args){if($args == "limit" || $args == "page")return $this->$args;elsereturn null;}/**按指定的格式输出分页@param int 0-7的数字分别作为参数,⽤于⾃定义输出分页结构和调整结构的顺序,默认输出全部结构@return string 分页信息内容*/function fpage(){$arr = func_get_args();$html[0] = " 共 {$this->total} {$this->total} {$this->config["head"]} ";$html[1] = " 本页 ".$this->disnum()."".$this->disnum()." 条 ";$html[2] = " 本页从 {$this->start()}-{$this->end()}{$this->start()}-{$this->end()} 条 ";$html[3] = " {$this->page}/{$this->pageNum}{$this->page}/{$this->pageNum}页 ";$html[4] = $this->firstprev();$html[5] = $this->pageList();$html[6] = $this->nextlast();$html[7] = $this->goPage();$fpage = '';if(count($arr)

$arr = array(0, 1,2,3,4,5,6,7);for($i = 0; $i

$fpage .= $html[$arr[$i]];$fpage .= '';return $fpage;}/* 在对象内部使⽤的私有⽅法,*/private function setLimit(){if($this->page > 0)return ($this->page-1)*$this->listRows.", {$this->listRows}";elsereturn 0;}/* 在对象内部使⽤的私有⽅法,⽤于⾃动获取访问的当前URL */private function getUri($query){$request_uri = $_SERVER["REQUEST_URI"];$url = strstr($request_uri,'?') ? $request_uri : $request_uri.'?';if(is_array($query))$url .= http_build_query($query);else if($query != "")$url .= "&".trim($query, "?&");$arr = parse_url($url);if(isset($arr["query"])){parse_str($arr["query"], $arrs);unset($arrs["page"]);$url = $arr["path"].'?'.http_build_query($arrs);}if(strstr($url, '?')) {if(substr($url, -1)!='?')$url = $url.'&';}else{$url = $url.'?';}return $url;}/* 在对象内部使⽤的私有⽅法,⽤于获取当前页开始的记录数 */private function start(){if($this->total == 0)return 0;elsereturn ($this->page-1) * $this->listRows+1;}/* 在对象内部使⽤的私有⽅法,⽤于获取当前页结束的记录数 */private function end(){return min($this->page * $this->listRows, $this->total);}/* 在对象内部使⽤的私有⽅法,⽤于获取上⼀页和⾸页的操作信息 */private function firstprev(){if($this->page > 1) {$str = " uri}page=1'>{$this->config["first"]} ";$str .= "uri}page=".($this->page-1)."'>{$this->config["prev"]} ";return $str;}}/* 在对象内部使⽤的私有⽅法,⽤于获取页数列表信息 */private function pageList(){$linkPage = " ";";$inum = floor($this->listNum/2);/*当前页前⾯的列表 */for($i = $inum; $i >= 1; $i--){$page = $this->page-$i;if($page >= 1)$linkPage .= "uri}page={$page}'>{$page} ";}/*当前页的信息 */if($this->pageNum > 1)$linkPage .= "{$this->page} ";/*当前页后⾯的列表 */for($i=1; $i <= $inum; $i++){$page = $this->page+$i;if($page <= $this->pageNum)$linkPage .= "uri}page={$page}'>{$page} ";elsebreak;}$linkPage .= '';return $linkPage;}/* 在对象内部使⽤的私有⽅法,获取下⼀页和尾页的操作信息 */private function nextlast(){if($this->page != $this->pageNum) {$str = " uri}page=".($this->page+1)."'>{$this->config["next"]} ";$str .= " uri}page=".($this->pageNum)."'>{$this->config["last"]} ";return $str;}}/* 在对象内部使⽤的私有⽅法,⽤于显⽰和处理表单跳转页⾯ */private function goPage(){if($this->pageNum > 1) {return ' '.$this->pageNum.')?'.$this->pageNum.':;location=''.$this->uri.'page='+page+''}" value="'.$this->page.'">'.$this->pageNum.')?'.$this->pageNum.':;location=''.$this->uri.'page='+page+''"> ';}}/* 在对象内部使⽤的私有⽅法,⽤于获取本页显⽰的记录条数 */private function disnum(){if($this->total > 0){return $this->end()-$this->start()+1;}else{return 0;}}}源⽂件下载Tags:PHP例⼦

2023年6月21日发(作者:)

漂亮的php分页代码,⼀个完美的php分页类代码⼀个完美的php分页类代码PHP实例为⼤家分享了php分页类的具体代码,供⼤家参考,具体内容如下 "条记录",'prev' => "上⼀页",'next' => "下⼀页",'first'=> "⾸页",'last' => "末页");//在分页信息中显⽰内容,可以⾃⼰通过set()⽅法设置private $listNum = 10; //默认分页列表显⽰的个数/**构造⽅法,可以设置分页类的属性@param int $total 计算分页的总记录数@param int $listRows 可选的,设置每页需要显⽰的记录数,默认为25条@param mixed $query 可选的,为向⽬标页⾯传递参数,可以是数组,也可以是查询字符串格式@param bool $ord 可选的,默认值为true, 页⾯从第⼀页开始显⽰,false则为最后⼀页*/public function __construct($total, $listRows=25, $query="", $ord=true){$this->total = $total;$this->listRows = $listRows;$this->uri = $this->getUri($query);$this->pageNum = ceil($this->total / $this->listRows);/*以下判断⽤来设置当前⾯*/if(!empty($_GET["page"])) {$page = $_GET["page"];}else{if($ord)$page = 1;else$page = $this->pageNum;}if($total > 0) {if(preg_match('/D/', $page) ){$this->page = 1;}else{$this->page = $page;}}else{$this->page = 0;}$this->limit = "LIMIT ".$this->setLimit();}/**⽤于设置显⽰分页的信息,可以进⾏连贯操作@param string $param 是成员属性数组config的下标@param string $value ⽤于设置config下标对应的元素值@return object 返回本对象⾃⼰$this, ⽤于连惯操作*/function set($param, $value){if(array_key_exists($param, $this->config)){$this->config[$param] = $value;}return $this;}/* 不是直接去调⽤,通过该⽅法,可以使⽤在对象外部直接获取私有成员属性limit和page的值 */function __get($args){if($args == "limit" || $args == "page")return $this->$args;elsereturn null;}/**按指定的格式输出分页@param int 0-7的数字分别作为参数,⽤于⾃定义输出分页结构和调整结构的顺序,默认输出全部结构@return string 分页信息内容*/function fpage(){$arr = func_get_args();$html[0] = " 共 {$this->total} {$this->total} {$this->config["head"]} ";$html[1] = " 本页 ".$this->disnum()."".$this->disnum()." 条 ";$html[2] = " 本页从 {$this->start()}-{$this->end()}{$this->start()}-{$this->end()} 条 ";$html[3] = " {$this->page}/{$this->pageNum}{$this->page}/{$this->pageNum}页 ";$html[4] = $this->firstprev();$html[5] = $this->pageList();$html[6] = $this->nextlast();$html[7] = $this->goPage();$fpage = '';if(count($arr)

$arr = array(0, 1,2,3,4,5,6,7);for($i = 0; $i

$fpage .= $html[$arr[$i]];$fpage .= '';return $fpage;}/* 在对象内部使⽤的私有⽅法,*/private function setLimit(){if($this->page > 0)return ($this->page-1)*$this->listRows.", {$this->listRows}";elsereturn 0;}/* 在对象内部使⽤的私有⽅法,⽤于⾃动获取访问的当前URL */private function getUri($query){$request_uri = $_SERVER["REQUEST_URI"];$url = strstr($request_uri,'?') ? $request_uri : $request_uri.'?';if(is_array($query))$url .= http_build_query($query);else if($query != "")$url .= "&".trim($query, "?&");$arr = parse_url($url);if(isset($arr["query"])){parse_str($arr["query"], $arrs);unset($arrs["page"]);$url = $arr["path"].'?'.http_build_query($arrs);}if(strstr($url, '?')) {if(substr($url, -1)!='?')$url = $url.'&';}else{$url = $url.'?';}return $url;}/* 在对象内部使⽤的私有⽅法,⽤于获取当前页开始的记录数 */private function start(){if($this->total == 0)return 0;elsereturn ($this->page-1) * $this->listRows+1;}/* 在对象内部使⽤的私有⽅法,⽤于获取当前页结束的记录数 */private function end(){return min($this->page * $this->listRows, $this->total);}/* 在对象内部使⽤的私有⽅法,⽤于获取上⼀页和⾸页的操作信息 */private function firstprev(){if($this->page > 1) {$str = " uri}page=1'>{$this->config["first"]} ";$str .= "uri}page=".($this->page-1)."'>{$this->config["prev"]} ";return $str;}}/* 在对象内部使⽤的私有⽅法,⽤于获取页数列表信息 */private function pageList(){$linkPage = " ";";$inum = floor($this->listNum/2);/*当前页前⾯的列表 */for($i = $inum; $i >= 1; $i--){$page = $this->page-$i;if($page >= 1)$linkPage .= "uri}page={$page}'>{$page} ";}/*当前页的信息 */if($this->pageNum > 1)$linkPage .= "{$this->page} ";/*当前页后⾯的列表 */for($i=1; $i <= $inum; $i++){$page = $this->page+$i;if($page <= $this->pageNum)$linkPage .= "uri}page={$page}'>{$page} ";elsebreak;}$linkPage .= '';return $linkPage;}/* 在对象内部使⽤的私有⽅法,获取下⼀页和尾页的操作信息 */private function nextlast(){if($this->page != $this->pageNum) {$str = " uri}page=".($this->page+1)."'>{$this->config["next"]} ";$str .= " uri}page=".($this->pageNum)."'>{$this->config["last"]} ";return $str;}}/* 在对象内部使⽤的私有⽅法,⽤于显⽰和处理表单跳转页⾯ */private function goPage(){if($this->pageNum > 1) {return ' '.$this->pageNum.')?'.$this->pageNum.':;location=''.$this->uri.'page='+page+''}" value="'.$this->page.'">'.$this->pageNum.')?'.$this->pageNum.':;location=''.$this->uri.'page='+page+''"> ';}}/* 在对象内部使⽤的私有⽅法,⽤于获取本页显⽰的记录条数 */private function disnum(){if($this->total > 0){return $this->end()-$this->start()+1;}else{return 0;}}}源⽂件下载Tags:PHP例⼦