一个简单实用的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 = '<span style="margin-right:10px;" class="f_l f6">总计 <b>'.$total.'</b> 个记录</span>';
//如果当前页面不是首页,就显示首页链接
if( $page > 1){
$pages .= '<a href="'.$url2.'page='.($page-1).'" >上一页</a> ';
}

for($i=1; $i<=$num; $i++){
if($i==$page){
$pages .= '<span class="page_now">'.$i.'</span> ';//当前页
}else{
$pages .= '<a href="'.$url2.'page='.$i.'" >'.$i.'</a> ';
}

}
//如果当前页面不是尾页,就显示尾页链接
if( $page < $num){
$pages .= '<a href="'.$url2.'page='.($page+1).'" >下一页</a> ';
}
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样式。


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值