本文实例为大家分享了php分页类的具体代码,供大家参考,具体内容如下
<?php
/*核心:首页、上一页、下一页、尾页的url*/
/*超全局$_SERVER*/
$page = new Page(5,60);
var_dump($page->allUrl());
class Page{
// 每页显示的个数
protected $number;
// 一共有多少数据
protected $totalCount;
// 当前页
protected $page;
// url
protected $url;
public function __construct($number,$totalCount){
$this->number= $number;
$this->totalCount = $totalCount;
//得到总页数
$this->totalPage = $this->getTotalPage();
//得到当前页数
$this->page = $this->getPage();
//得到URL
$this->url = $this->getUrl();
echo $this->url;
}
/*得到总页数并向上取整*/
protected function getTotalPage(){
return ceil($this->totalCount/$this->number);
}
/**/
protected function getPage(){
if (empty($_GET['page'])){
$page=1;
}elseif ($_GET['page'] > $this->totalPage){
$page = $this->totalPage;
}elseif ($_GET["page"]<1){
$page = 1;
}else{
$page = $_GET['page'];
}
return $page;
}
protected function getUrl(){
//得到协议名
$scheme = $_SERVER['REQUEST_SCHEME'];
//得到主机名
$host= $_SERVER['SERVER_NAME'];
//得到端口号
$port = $_SERVER['SERVER_PORT'];
//得到路径和请求字符串
$url = $_SERVER['REQUEST_URI'];
/*中间做处理,要将page=5等这种字符串拼接URL
中,所以如果原来的url中有page这个参数,我们首先
需要将原来的page参数给清空*/
$urlArray = parse_url($url);
// var_dump($urlArray);
$path = $urlArray['path'];
if (!empty($urlArray['query'])){
//将query中的值转化为数组
parse_str($urlArray['query'],$array);
//如果他有page就将它删掉
unset($array['page']);
//将关联数组转化为query
$query = http_build_query($array);
//不为空的话就与path连结
if ($query != ''){
$path = $path.'?'.$query;
}
}
return 'http://'. $host.':'.$port.$path;
}
protected function setUrl($str){
if (strstr($this->url, '?')){
$url = $this->url.'&'.$str;
}else{
$url = $this->url.'?'.$str;
}
return $url;
}
/*所有的url*/
public function allUrl(){
return [
'first' => $this->first(),
'next' => $this->next(),
'prev'=> $this->prev(),
'end'=> $this->end(),
];
}
/*首页*/
public function first(){
return $this->setUrl('page=1');
}
/*下一页*/
public function next(){
//根据当前page得带下一页的页码
if ($this->page+1 > $this->totalPage) {
$page = $this->totalPage;
}else{
$page = $this->page+1;
}
return $this->setUrl('page='.$page);
}
/*上一页*/
public function prev(){
//根据当前page得带下一页的页码
if ($this->page - 1 < 1) {
$page = 1;
}else{
$page = $this->page-1;
}
return $this->setUrl('page='.$page);
}
/*尾页*/
public function end(){
return $this->setUrl('page='.$this->totalPage);
}
/*limit 0,5*/
public function limit(){
$offset = ($this->page-1)*$this->number;
return $offset.','.$this->number;
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# php
# 分页类
# PHP分页显示的方法分析【附PHP通用分页类】
# 完美的php分页类
# php分页查询的简单实现代码
# php分页原理 分页代码 分页类制作教程
# PHP分页初探 一个最简单的PHP分页代码的简单实现
# 用php实现分页效果的示例代码
# 下一页
# 上一页
# 尾页
# 转化为
# 首页
# 中有
# 每页
# 他有
# 分页
# 要将
# 将它
# 大家分享
# 具体内容
# 大家多多
# 就与
# 清空
# 为空
# 端口号
# 当前页
# var_dump
相关文章:
利用JavaScript实现拖拽改变元素大小
SAX解析器是什么,它与DOM在处理大型XML文件时有何不同?
矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?
制作网站的软件下载免费,今日头条开宝箱老是需要下载怎么回事?
如何获取PHP WAP自助建站系统源码?
已有域名如何免费搭建网站?
外汇网站制作流程,如何在工商银行网站上做外汇买卖?
seo网站制作优化,网站SEO优化步骤有哪些?
简易网站制作视频教程,使用记事本编写一个简单的网页html文件?
建站之星如何快速更换网站模板?
如何通过二级域名建站提升品牌影响力?
移民网站制作流程,怎么看加拿大移民官网?
宁波自助建站系统如何快速打造专业企业网站?
建站主机选购指南:核心配置与性价比推荐解析
c# Task.Yield 的作用是什么 它和Task.Delay(1)有区别吗
如何确保西部建站助手FTP传输的安全性?
哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?
公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?
开心动漫网站制作软件下载,十分开心动画为何停播?
,交易猫的商品怎么发布到网站上去?
如何用VPS主机快速搭建个人网站?
安徽网站建设与外贸建站服务专业定制方案
如何在万网自助建站中设置域名及备案?
音响网站制作视频教程,隆霸音响官方网站?
专业的网站制作设计是什么,如何制作一个企业网站,建设网站的基本步骤有哪些?
如何在Golang中实现微服务服务拆分_Golang微服务拆分与接口管理方法
网站制作哪家好,cc、.co、.cm哪个域名更适合做网站?
建站之星安装失败:服务器环境不兼容?
建站之星客服服务时间及联系方式如何?
如何生成腾讯云建站专用兑换码?
成都响应式网站开发,dw怎么把手机适应页面变成网页?
建站之星备案是否影响网站上线时间?
如何快速生成高效建站系统源代码?
大连网站设计制作招聘信息,大连投诉网站有哪些?
微网站制作教程,不会写代码,不会编程,怎么样建自己的网站?
早安海报制作网站推荐大全,企业早安海报怎么每天更换?
网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?
linux top下的 minerd 木马清除方法
阿里云网站搭建费用解析:服务器价格与建站成本优化指南
建站之星如何快速生成多端适配网站?
南平网站制作公司,2025年南平市事业单位报名时间?
桂林网站制作公司有哪些,桂林马拉松怎么报名?
如何在云主机上快速搭建网站?
东莞市网站制作公司有哪些,东莞找工作用什么网站好?
如何打造高效商业网站?建站目的决定转化率
图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?
宠物网站制作html代码,有没有专门介绍宠物如何养的网站啊?
宁波免费建站如何选择可靠模板与平台?
香港服务器租用每月最低只需15元?
如何设置并定期更换建站之星安全管理员密码?
*请认真填写需求信息,我们会在24小时内与您取得联系。