分享一个简单实用的 PHP 列表分页类

网上分享的PHP分页类是非常多,有的功能上很强大,但是代码确实有一点比较多,一些初学者可能很难理解,也就没法用。所以,后端开发在这里分享一下轻量级的非常小巧而且易懂的PHP列表分页类,供大家参照。

class PageTool{

public function __construct(){

}

/显示分页
例: index.php?cat_id=3&act=del&page=1
/
public function show($total,$perpage=10,$page=1){

//获取页面URL前置
$url = $_SERVER['REQUEST_URI'];
$url_arr = parse_url($url);
//获取URL后置参数,分解成数组
$query = array();
if(isset($url_arr['query'])){
parse_str($url_arr['query'],$query);
}

//销毁 $query['page'],因为page会变化,
//而 分类ID号 在分页页面 是不会变的。所以作为固定前置
if(isset($query['page'])){
unset($query['page']);
}

//组合后置参数为字符串
$afterparam = !empty($query) ? http_build_query($query).'&' : '';

//组合 固定URL前置
$url2 = $url_arr['path'].'?'.$afterparam;

//显示分页
$num = ceil($total/$perpage); //总页数
if($page < 1){//如查页数 小于 1 ,就等于1
$page = 1;
}
if($page > $num){ //如果 页数 大于 总页数,就等于总页数
$page = $num;
}
$pages = '总计 '.$total.' 个记录';
//如果当前页面不是首页,就显示首页链接
if( $page > 1){
$pages .= '上一页 ';
}

for($i=1; $i<=$num; $i++){
if($i==$page){
$pages .= ''.$i.' ';//当前页
}else{
$pages .= ''.$i.' ';
}

}
//如果当前页面不是尾页,就显示尾页链接
if( $page < $num){
$pages .= '下一页 ';
}
return $pages;
}

}

就是上面这样一个简单的PHP分页类,只有一个方法,没有任何属性。调用方法如下:

$total = 100; //商品总数
$perpage = 2; //每页显示多少条
$page = isset($_GET['page']) ? $_GET['page']+0 : 1; //当前页

$start = ($page-1)*$perpage; //从哪一条开始
$list = $good->getCatGoods($cid,$perpage,$start); //这里是分类目录类中的一个方法,调用商品列表,这里就不提供了
//分页
$fenye = new PageTool();
$show = $fenye->show($total,$perpage,$page); //调用分页方法

这样,在网页上就可以看到如下图的效果:

没有写CSS样,所以,难看了点,大家可以自己写个好看的CSS样式。

本作品采用《CC 协议》,转载必须注明作者和本文链接
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!