全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

万能的php分页类

本文实例为大家分享了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小时内与您取得联系。