php设置每页条数的变量_PHP原生分页原理,不难懂

有兴趣的可以认真的阅读一下。

<?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 .= ' <a href="'.$this->url.'&page='.$_page.'" rel="external nofollow" rel="external nofollow" >'.$_page.'</a> ';
 }
 $_pagelist .= ' <span class="me">'.$this->page.'</span> ';
 for ($i=1;$i<=$this->bothnum;$i++) {
 $_page = $this->page+$i;
 if ($_page > $this->pagenum) break;
 $_pagelist .= ' <a href="'.$this->url.'&page='.$_page.'" rel="external nofollow" rel="external nofollow" >'.$_page.'</a> ';
 }
 return $_pagelist;
 }
 //首页
 private function first() {
 if ($this->page > $this->bothnum+1) {
 return ' <a href="'.$this->url.'" rel="external nofollow" >1</a> ...';
 }
 }
 //上一页
 private function prev() {
 if ($this->page == 1) {
 return '<span class="disabled">上一页</span>';
 }
 return ' <a href="'.$this->url.'&page='.($this->page-1).'" rel="external nofollow" >上一页</a> ';
 }
 //下一页
 private function next() {
 if ($this->page == $this->pagenum) {
 return '<span class="disabled">下一页</span>';
 }
 return ' <a href="'.$this->url.'&page='.($this->page+1).'" rel="external nofollow" >下一页</a> ';
 }
 //尾页
 private function last() {
 if ($this->pagenum - $this->page > $this->bothnum) {
 return ' ...<a href="'.$this->url.'&page='.$this->pagenum.'" rel="external nofollow" >'.$this->pagenum.'</a> ';
 }
 }
 //分页信息
 public function showpage() {
 $_page .= $this->first();
 $_page .= $this->pageList();
 $_page .= $this->last();
 $_page .= $this->prev();
 $_page .= $this->next();
 return $_page;
 }
 }
?>

分页样式如下图所示:

128fd498bf517f3c8c4e20508175a4f8.png

使用说明:

<?php
 $_page = new Page($_total,$_pagesize);
 //其中 $_total 是数据集的总条数,$_pagesize 是每页显示的数量.
?>
以上内容希望帮助到大家,很多PHPer在进阶的时候总会遇到一些问题和瓶颈,业务代码写多了没有方向感,不知道该从那里入手去提升,对此我整理了一些资料,包括但不限于:分布式架构、高可扩展、高性能、高并发、服务器性能调优、TP6,laravel,YII2,Redis,Swoole、Swoft、Kafka、Mysql优化、shell脚本、Docker、微服务、Nginx等多个知识点高级进阶干货需要的可以免费分享给大家 ,需要请戳这里链接 或者关注咱们下面的专栏
PHP大神进阶​zhuanlan.zhihu.com
a0c2a22721ed9ed25f36bc2aea225c14.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值