博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHP的Android脚本,简单好用的PHP分页类
阅读量:4964 次
发布时间:2019-06-12

本文共 3727 字,大约阅读时间需要 12 分钟。

本文为大家分享了两段PHP分页类,很实用,供大家参考,具体内容如下

class Page {

private $total; //总记录

private $pagesize; //每页显示多少条

private $limit; //limit

private $page; //当前页码

private $pagenum; //总页码

private $url; //地址

private $bothnum; //两边保持数字分页的量

//构造方法初始化

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;

}

//获取当前页码

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;

} //数字目录

private function pageList() {

for ($i=$this->bothnum;$i>=1;$i--) {

$_page = $this->page-$i;

if ($_page < 1) continue;

$_pagelist .= ' ';

}

$_pagelist .= ' '.$this->page.' ';

for ($i=1;$i<=$this->bothnum;$i++) {

$_page = $this->page+$i;

if ($_page > $this->pagenum) break;

$_pagelist .= ' ';

}

return $_pagelist;

}

//首页

private function first() {

if ($this->page > $this->bothnum+1) {

return ' ...';

}

}

//上一页

private function prev() {

if ($this->page == 1) {

return '上一页';

}

return ' ';

}

//下一页

private function next() {

if ($this->page == $this->pagenum) {

return '下一页';

}

return ' ';

}

//尾页

private function last() {

if ($this->pagenum - $this->page > $this->bothnum) {

return ' ... ';

}

}

//分页信息

public function showpage() {

$_page .= $this->first();

$_page .= $this->pageList();

$_page .= $this->last();

$_page .= $this->prev();

$_page .= $this->next();

return $_page;

}

}

?>

分页样式如下图所示:

9f09e35926b198681d711396b165edc7.png

使用说明:

$_page = new Page($_total,$_pagesize); //其中 $_total 是数据集的总条数,$_pagesize 是每页显示的数量.

?>

第二个分页类:

/**

* page.class.php 分页类

* 日期: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 "

";

}

}

public static function previous()

{

if (self::$page > 1)

{

$url = self::url(self::$page - 1);

return "

";

}

}

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 .= "

{$i}";

else

$str .= "

";

}

return $str;

}

public static function next()

{

if (self::$page < self::$max)

{

$url = self::url(self::$page + 1);

return "

";

}

}

public static function end()

{

if ((self::$max - self::$page) > 1)

{

$url = self::url(self::$max);

return "

";

}

}

public static function url($page)

{

return str_replace('{page}', $page, self::$url);

}

}

以上就是本文的全部内容,希望对大家学习php程序设计有所帮助。

转载地址:http://aeqhp.baihongyu.com/

你可能感兴趣的文章
Android项目的目录结构
查看>>
C++中“引用”的底层实现
查看>>
Spring Cloud与微服务构建:微服务简介
查看>>
Babel 是干什么的
查看>>
cocos2dx-3.0(8)------Label、LabelTTF、LabelAtlas、LabelBMFont使用之法
查看>>
CODE[VS] 1842 递归第一次
查看>>
20180418小测
查看>>
数字三角形
查看>>
NGUI 减少drawcall规则
查看>>
三元表达,匿名函数
查看>>
前端笔记-基础笔记
查看>>
【LeetCode & 剑指offer刷题】查找与排序题6:33. Search in Rotated Sorted Array(系列)
查看>>
GNU/Linux超级本ZaReason Ultralap 440体验
查看>>
将github上托管的代码 在我的域名下运行
查看>>
【Manthan, Codefest 18 (rated, Div. 1 + Div. 2) C】Equalize
查看>>
【codeforces 767A】Snacktower
查看>>
【MemSQL Start[c]UP 3.0 - Round 1 C】 Pie Rules
查看>>
Ognl中“%”、“#”、“$”详解
查看>>
我对应用软件——美团的看法
查看>>
执行了的程序,才是你的程序.
查看>>