簡(jiǎn)單好用的PHP分頁(yè)類
本文為大家分享了兩段PHP分頁(yè)類,很實(shí)用,供大家參考,具體內(nèi)容如下
<?php
class Page {
private $total; //總記錄
private $pagesize; //每頁(yè)顯示多少條
private $limit; //limit
private $page; //當(dāng)前頁(yè)碼
private $pagenum; //總頁(yè)碼
private $url; //地址
private $bothnum; //兩邊保持?jǐn)?shù)字分頁(yè)的量
//構(gòu)造方法初始化
public function __construct($_total, $_pagesize) {
$this->total = $_total ? $_total : 1;
$this->pagesize = $_pagesize;
$this->pagenum = ceil($this->total / $this->pagesize);
$this->page = $this->setPage();
$this->limit = "LIMIT ".($this->page-1)*$this->pagesize.",$this->pagesize";
$this->url = $this->setUrl();
$this->bothnum = 2;
}
//攔截器
private function __get($_key) {
return $this->$_key;
}
//獲取當(dāng)前頁(yè)碼
private function setPage() {
if (!empty($_GET['page'])) {
if ($_GET['page'] > 0) {
if ($_GET['page'] > $this->pagenum) {
return $this->pagenum;
} else {
return $_GET['page'];
}
} else {
return 1;
}
} else {
return 1;
}
}
//獲取地址
private function setUrl() {
$_url = $_SERVER["REQUEST_URI"];
$_par = parse_url($_url);
if (isset($_par['query'])) {
parse_str($_par['query'],$_query);
unset($_query['page']);
$_url = $_par['path'].'?'.http_build_query($_query);
}
return $_url;
} //數(shù)字目錄
private function pageList() {
for ($i=$this->bothnum;$i>=1;$i--) {
$_page = $this->page-$i;
if ($_page < 1) continue;
$_pagelist .= ' <a href="'.$this->url.'&page='.$_page.'">'.$_page.'</a> ';
}
$_pagelist .= ' <span class="me">'.$this->page.'</span> ';
for ($i=1;$i<=$this->bothnum;$i++) {
$_page = $this->page+$i;
if ($_page > $this->pagenum) break;
$_pagelist .= ' <a href="'.$this->url.'&page='.$_page.'">'.$_page.'</a> ';
}
return $_pagelist;
}
//首頁(yè)
private function first() {
if ($this->page > $this->bothnum+1) {
return ' <a href="'.$this->url.'">1</a> ...';
}
}
//上一頁(yè)
private function prev() {
if ($this->page == 1) {
return '<span class="disabled">上一頁(yè)</span>';
}
return ' <a href="'.$this->url.'&page='.($this->page-1).'">上一頁(yè)</a> ';
}
//下一頁(yè)
private function next() {
if ($this->page == $this->pagenum) {
return '<span class="disabled">下一頁(yè)</span>';
}
return ' <a href="'.$this->url.'&page='.($this->page+1).'">下一頁(yè)</a> ';
}
//尾頁(yè)
private function last() {
if ($this->pagenum - $this->page > $this->bothnum) {
return ' ...<a href="'.$this->url.'&page='.$this->pagenum.'">'.$this->pagenum.'</a> ';
}
}
//分頁(yè)信息
public function showpage() {
$_page .= $this->first();
$_page .= $this->pageList();
$_page .= $this->last();
$_page .= $this->prev();
$_page .= $this->next();
return $_page;
}
}
?>
分頁(yè)樣式如下圖所示:

使用說(shuō)明:
<?php $_page = new Page($_total,$_pagesize); //其中 $_total 是數(shù)據(jù)集的總條數(shù),$_pagesize 是每頁(yè)顯示的數(shù)量. ?>
第二個(gè)分頁(yè)類:
<?php
/**
* page.class.php 分頁(yè)類
* 日期:2015-04-05
* http://aowana.sinaapp.com
*/
class page
{
public static $url;
public static $page;
public static $total;
public static $size;
public static $number;
public static $max;
public static $action = array('previous', 'number', 'next');
public static function show($url, $page, $total, $size=10, $number=11)
{
self::$url = $url;
self::$page = $page;
self::$total = $total;
self::$size = $size;
self::$number = $number;
self::$max = ceil($total / $size);
$str = '';
foreach (self::$action as $name)
$str .= self::$name();
return $str;
}
public static function first()
{
if (self::$page > 2)
{
$url = self::url(1);
return "<li id=\"pbfirst\"><a href=\"{$url}\" title=\"首頁(yè)\">首頁(yè)</a></li>";
}
}
public static function previous()
{
if (self::$page > 1)
{
$url = self::url(self::$page - 1);
return "<li id=\"pbprevious\"><a href=\"{$url}\" title=\"上一頁(yè)\">上一頁(yè)</a></li>";
}
}
public static function number()
{
$str = '';
$f = self::$number % 2 ? (self::$number - 1) / 2 : self::$number / 2;
$s = self::$page - $f;
$e = self::$page + $f;
if (self::$page < ($f + 1))
{
$s = 1;
$e = self::$number;
$e = $e > self::$max ? self::$max : $e;
}
if (self::$page > (self::$max - $f))
{
$s = self::$max - self::$number;
$s = $s < 1 ? 1 : $s;
$e = self::$max;
}
for ($i=$s; $i<=$e; $i++)
{
$url = self::url($i);
if ($i == self::$page)
$str .= "<li><strong>{$i}</strong></li>";
else
$str .= "<li><a href=\"{$url}\" title=\"第{$i}頁(yè)\">{$i}</a></li>";
}
return $str;
}
public static function next()
{
if (self::$page < self::$max)
{
$url = self::url(self::$page + 1);
return "<li id=\"pbnext\"><a href=\"{$url}\" title=\"下一頁(yè)\">下一頁(yè)</a></li>";
}
}
public static function end()
{
if ((self::$max - self::$page) > 1)
{
$url = self::url(self::$max);
return "<li id=\"pbend\"><a href=\"{$url}\" title=\"末頁(yè)\">末頁(yè)</a></li>";
}
}
public static function url($page)
{
return str_replace('{page}', $page, self::$url);
}
}
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家學(xué)習(xí)php程序設(shè)計(jì)有所幫助。
- 功能強(qiáng)大的php分頁(yè)函數(shù)
- PHP實(shí)現(xiàn)適用于文件內(nèi)容操作的分頁(yè)類
- 基于PHP實(shí)現(xiàn)數(shù)據(jù)分頁(yè)顯示功能
- PHP框架Laravel插件Pagination實(shí)現(xiàn)自定義分頁(yè)
- PHP MSSQL 分頁(yè)實(shí)例
- PHP實(shí)現(xiàn)可自定義樣式的分頁(yè)類
- 兩款萬(wàn)能的php分頁(yè)類
- php實(shí)現(xiàn)分頁(yè)功能的3種方法
- jQuery+Ajax+PHP+Mysql實(shí)現(xiàn)分頁(yè)顯示數(shù)據(jù)實(shí)例講解
- Thinkphp3.2.3分頁(yè)使用實(shí)例解析
相關(guān)文章
Android常用正則表達(dá)式驗(yàn)證工具類(實(shí)例代碼)
正則表達(dá)式,相信接觸過(guò)編程的人都知道,但是大部分人應(yīng)該是每次用的時(shí)候現(xiàn)找,但對(duì)其語(yǔ)法應(yīng)該只是一知半解 。下面小編給大家分享Android常用正則表達(dá)式驗(yàn)證工具類,感興趣的朋友一起看看吧2017-10-10
Android5.0以上實(shí)現(xiàn)全透明的狀態(tài)欄方法(仿網(wǎng)易云界面)
下面小編就為大家分享一篇Android5.0以上實(shí)現(xiàn)全透明的狀態(tài)欄方法(仿網(wǎng)易云界面),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-01-01
Android SharedPreferences的使用分析
本篇文章小編為大家介紹,Android SharedPreferences的使用分析。需要的朋友參考下2013-04-04
Android自定義帶增長(zhǎng)動(dòng)畫和點(diǎn)擊彈窗提示效果的柱狀圖DEMO
這篇文章主要介紹了Android自定義帶增長(zhǎng)動(dòng)畫和點(diǎn)擊彈窗提示效果的柱狀圖的相關(guān)資料,非常不錯(cuò)具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2016-11-11
淺析Kotlin使用infix函數(shù)構(gòu)建可讀語(yǔ)法流程講解
這篇文章主要介紹了淺析Kotlin使用infix函數(shù)構(gòu)建可讀語(yǔ)法,我們?cè)贙otlin中就多次使用A to B這樣的語(yǔ)法結(jié)構(gòu)構(gòu)建鍵值對(duì),包括Kotlin自帶的mapOf()函數(shù),這種語(yǔ)法結(jié)構(gòu)的優(yōu)點(diǎn)是可讀性強(qiáng)2023-01-01
android實(shí)現(xiàn)按鈕獲取焦點(diǎn)延遲加載
這篇文章主要為大家詳細(xì)介紹了android實(shí)現(xiàn)按鈕獲取焦點(diǎn)延遲加載,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-09-09
Android開發(fā) 旋轉(zhuǎn)屏幕導(dǎo)致Activity重建解決方法
Android開發(fā)文檔上專門有一小節(jié)解釋這個(gè)問(wèn)題。簡(jiǎn)單來(lái)說(shuō),Activity是負(fù)責(zé)與用戶交互的最主要機(jī)制,接下來(lái)為您詳細(xì)介紹2012-11-11
Android開發(fā)之簡(jiǎn)單文件管理器實(shí)現(xiàn)方法
這篇文章主要介紹了Android開發(fā)之簡(jiǎn)單文件管理器實(shí)現(xiàn)方法,簡(jiǎn)單實(shí)現(xiàn)了Android的文件目錄查看,文件重命名,打開,刪除等功能,需要的朋友可以參考下2016-01-01
Android編程實(shí)現(xiàn)監(jiān)控各個(gè)程序流量的方法
這篇文章主要介紹了Android編程實(shí)現(xiàn)監(jiān)控各個(gè)程序流量的方法,涉及Android針對(duì)應(yīng)用包的遍歷,權(quán)限控制及相關(guān)屬性操作技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-12-12

