PHP分页类

php

浏览数:385

2019-1-8

per_page = intval($per_page)<1 ? $this->per_page : intval($per_page);//每页显示条数小于1时 默认为10

$this->page_num = ceil( $totle / $this->per_page );

$this->page = isset($_GET[PAGE_NAME]) ? ( (intval($_GET[PAGE_NAME])>0) ? intval($_GET[PAGE_NAME]):1) : 1;//当前页码小于1时默认为第一页

$this->page = $this->page > $this->page_num ? $this->page_num : $this->page;//当前页码超过最大页码时默认为最后一页

$this->html = '';

}

/**

* 私有属性赋值时的错误处理

*/

public function __set( $aa ,$bb){}

/**

* 配置类的私有属性

* $ary array 键值对,键为该类的私有属性

*/

public function set( $ary = array( 'display_str_flag'=>false,

'prev_label'=>'>>',

'next_label'=>'>>',

'first_label'=>'>>',

'last_label'=>'>>',

'adjacent_num'=>5))

{

foreach( $ary as $key=>$value )

{

$this->{$key} = $value;

}

}

/**

* 返回当前URL

*/

private function getURL()

{

$url = $_SERVER["REQUEST_URI"].(strpos($_SERVER["REQUEST_URI"],'?')?'':"?");

$parse=parse_url($url);

if(isset($parse['query']))

{

parse_str($parse['query'],$params);

unset($params[PAGE_NAME]);

$url = $parse['path'].'?'.http_build_query($params);

}

$url .= strpos($url, '?') ? (strpos($url, '=')?'&':'') : '' ;

return $url;

}

/**

* 首页

*/

private function first_page()

{

if( $this->page == 1 )

{

$this->html .= '' . $this->first_label . ''.CR;

}

else

{

$this->html .= '' . $this->first_label . ''.CR;

}

}

/**

* 尾页

*/

private function last_page()

{

if( $this->page == $this->page_num )

{

$this->html .= '' . $this->last_label . ''.CR;

}

else

{

$this->html .= '' . $this->last_label . ''.CR;

}

}

/**

* 上一页

*/

private function prev_page()

{

if( $this->page == 1 )

{

$this->html .= '' . $this->prev_label . ''.CR;

}

else

{

$this->html .= '' . $this->prev_label . ''.CR;

}

}

/**

* 下一页

*/

private function next_page()

{

if( $this->page < $this->page_num)

{

$this->html .= '' . $this->next_label . ''.CR;

}

else

{

$this->html .= '' . $this->next_label . ''.CR;

}

}

/**

* 第一块 第一个省略号前的那块

*/

private function first_block()

{

if( $this->page > ( $this->adjacent_num+1 ) )

{

$this->html.= '1'.CR;

}

if( $this->page > ( $this->adjacent_num+2 ) )

{

$this->html.= '...'.CR;

}

}

/**

* 第二块 两个省略号中间的那块

*/

private function middle_block()

{

$page_min = ( $this->page > $this->adjacent_num ) ? ( $this->page - $this->adjacent_num ) : 1;

$page_max = ( $this->page < ($this->page_num-$this->adjacent_num)) ? ($this->page+$this->adjacent_num) : $this->page_num ;

for( $i=$page_min; $i<=$page_max; $i++)

{

if( $i == $this->page )

{

$this->html .= '' . $i . ''.CR;

}

else

{

$this->html .= '' . $i . ''.CR;

}

}

}

/**

* 最后一块 最后一个省略号后的的那块

*/

private function last_block()

{

if( $this->page < ($this->page_num - $this->adjacent_num - 1))

{

$this->html .= '...'.CR;

}

if( $this->page < ($this->page_num-$this->adjacent_num ))

{

$this->html .= '' . $this->page_num . ''.CR;

}

}

/**

* 显示分页

*

* $out_flag bool 输出和反回分页html的标志 true:直接输出 false:返回分页的html

*

*/

public function display( $out_flag = false )

{

$this->html = '

'.CR;

if( $this->display_str_flag === true )

{//首页和尾页用字符串显示

$this->first_page(); //显示首页

$this->prev_page(); //显示上一页

$this->middle_block(); //显示中间块

$this->next_page(); //显示下一页

$this->last_page(); //显示最后一页

}

else

{//首页和尾页用数字显示

$this->prev_page(); //显示上一页

$this->first_block(); //显示第一块

$this->middle_block(); //显示中间块

$this->last_block(); //显示最后一块

$this->next_page(); //显示下一页

}

$this->html .= '';

if($out_flag === false)

{//返回分页 html码

return $this->html;

}

else

{//输出分页 html码

echo $html;

}

}

}

/*************demo **************/

$page = new page(3,55);

$page->set( $ary = array( 'display_str_flag'=>false,

'prev_label'=>'上',

'next_label'=>'下一页',

'last_label'=>'末',));

echo $page->display();

/*************demo **************/

?>

分页类 ~ 6KB    下载(39)

per_page = intval($per_page)<1 ? $this->per_page : intval($per_page);//每页显示条数小于1时 默认为10

$this->page_num = ceil( $totle / $this->per_page );

$this->page = isset($_GET[PAGE_NAME]) ? ( (intval($_GET[PAGE_NAME])>0) ? intval($_GET[PAGE_NAME]):1) : 1;//当前页码小于1时默认为第一页

$this->page = $this->page > $this->page_num ? $this->page_num : $this->page;//当前页码超过最大页码时默认为最后一页

$this->html = '';

}

/**

* 私有属性赋值时的错误处理

*/

public function __set( $aa ,$bb){}

/**

* 配置类的私有属性

* $ary array 键值对,键为该类的私有属性

*/

public function set( $ary = array( 'display_str_flag'=>false,

'prev_label'=>'>>',

'next_label'=>'>>',

'first_label'=>'>>',

'last_label'=>'>>',

'adjacent_num'=>5))

{

foreach( $ary as $key=>$value )

{

$this->{$key} = $value;

}

}

/**

* 返回当前URL

*/

private function getURL()

{

$url = $_SERVER["REQUEST_URI"].(strpos($_SERVER["REQUEST_URI"],'?')?'':"?");

$parse=parse_url($url);

if(isset($parse['query']))

{

parse_str($parse['query'],$params);

unset($params[PAGE_NAME]);

$url = $parse['path'].'?'.http_build_query($params);

}

$url .= strpos($url, '?') ? (strpos($url, '=')?'&':'') : '' ;

return $url;

}

/**

* 首页

*/

private function first_page()

{

if( $this->page == 1 )

{

$this->html .= '' . $this->first_label . ''.CR;

}

else

{

$this->html .= '' . $this->first_label . ''.CR;

}

}

/**

* 尾页

*/

private function last_page()

{

if( $this->page == $this->page_num )

{

$this->html .= '' . $this->last_label . ''.CR;

}

else

{

$this->html .= '' . $this->last_label . ''.CR;

}

}

/**

* 上一页

*/

private function prev_page()

{

if( $this->page == 1 )

{

$this->html .= '' . $this->prev_label . ''.CR;

}

else

{

$this->html .= '' . $this->prev_label . ''.CR;

}

}

/**

* 下一页

*/

private function next_page()

{

if( $this->page < $this->page_num)

{

$this->html .= '' . $this->next_label . ''.CR;

}

else

{

$this->html .= '' . $this->next_label . ''.CR;

}

}

/**

* 第一块 第一个省略号前的那块

*/

private function first_block()

{

if( $this->page > ( $this->adjacent_num+1 ) )

{

$this->html.= '1'.CR;

}

if( $this->page > ( $this->adjacent_num+2 ) )

{

$this->html.= '...'.CR;

}

}

/**

* 第二块 两个省略号中间的那块

*/

private function middle_block()

{

$page_min = ( $this->page > $this->adjacent_num ) ? ( $this->page - $this->adjacent_num ) : 1;

$page_max = ( $this->page < ($this->page_num-$this->adjacent_num)) ? ($this->page+$this->adjacent_num) : $this->page_num ;

for( $i=$page_min; $i<=$page_max; $i++)

{

if( $i == $this->page )

{

$this->html .= '' . $i . ''.CR;

}

else

{

$this->html .= '' . $i . ''.CR;

}

}

}

/**

* 最后一块 最后一个省略号后的的那块

*/

private function last_block()

{

if( $this->page < ($this->page_num - $this->adjacent_num - 1))

{

$this->html .= '...'.CR;

}

if( $this->page < ($this->page_num-$this->adjacent_num ))

{

$this->html .= '' . $this->page_num . ''.CR;

}

}

/**

* 显示分页

*

* $out_flag bool 输出和反回分页html的标志 true:直接输出 false:返回分页的html

*

*/

public function display( $out_flag = false )

{

$this->html = '

'.CR;

if( $this->display_str_flag === true )

{//首页和尾页用字符串显示

$this->first_page(); //显示首页

$this->prev_page(); //显示上一页

$this->middle_block(); //显示中间块

$this->next_page(); //显示下一页

$this->last_page(); //显示最后一页

}

else

{//首页和尾页用数字显示

$this->prev_page(); //显示上一页

$this->first_block(); //显示第一块

$this->middle_block(); //显示中间块

$this->last_block(); //显示最后一块

$this->next_page(); //显示下一页

}

$this->html .= '';

if($out_flag === false)

{//返回分页 html码

return $this->html;

}

else

{//输出分页 html码

echo $html;

}

}

}

/*************demo **************/

$page = new page(3,55);

$page->set( $ary = array( 'display_str_flag'=>false,

'prev_label'=>'上',

'next_label'=>'下一页',

'last_label'=>'末',));

echo $page->display();

/*************demo **************/

?>

前端分页php,PHP分页类 – 前端开发,JQUERY特效,全栈开发,vue开发相关推荐

  1. vue学习笔记-01-前端的发展历史(从后端到前端,再到前后端分离,再到全栈)

    vue学习笔记-01-前端的发展历史(从后端到前端,再到前后端分离,再到全栈)   这篇文章是博主在看vue-前端发展简史的时候做的笔记,以供后续学习复习 文章目录 vue学习笔记-01-前端的发展历 ...

  2. (Node+Vue+微信公众号开发)企业级产品全栈开发速成周末班

    (Node+Vue+微信公众号开发)企业级产品全栈开发速成周末班 从零到壹全栈部落 产品:个人独立博客,21点见 Vue + Node + MongoDB支持服务端渲染的博客系统(5天) 开发环境技术 ...

  3. python全栈工程师 pdf_python全栈工程师项目开发实例实战入门教程百度云

    python全栈工程师项目开发实例实战入门教程百度云 课程目录: 开学典礼 pycharm的基本使用 Python基本语法 数值类型数据及运算 字符串的基本操作 字符串的常用方法 列表的基本使用 列表 ...

  4. 软硬结合——写给硬件开发工程师的全栈入门实战

    特别注意: 教程已经迁移到:www.scaugreen.cn 软硬结合--写给硬件开发工程师的全栈入门实战 作者水平 读者水平要求 整个项目简单介绍 教程特点 为什么使用nodejs 开始 提问 提问 ...

  5. H5前端开发入门学习(基于vs+vue开发)

    文章仅供初学入门,只讲学习套路,如何去学习,具体知识点不具体叙述. h5开发即无线端的web开发 学习h5开发,整体了解一下各种技术与工具: 常用开发框架 排名前三框架:react.js .vue.j ...

  6. 普元王文斌:微服务架构开发模式需要全栈团队

    容器技术的发展,让微服务的构建变得容易,例如普元公司正在使用Kubenetes作为一个底层的容器调度平台来支撑上层微服务的部署运行.日前,普元普元基础设施架构师王文斌接受CSDN记者专访,介绍了他对微 ...

  7. Python全栈5 - Web开发入门

    5.Python Web开发 1Web 开发介绍 1-1 Web 开发概述 C/S B/S – web开发 访问网站的过程: 静态网站 动态网站 – 网站由于用户的请求不同,而呈现出不同的的结果 MV ...

  8. 使用Asp.net Core3Blazor 的全栈式网站开发体验

    最新的微软视频:Full stack web development with ASP.NET Core 3.0 and Blazor - BRK3017 以下是重要步骤截图配注解,注意图多杀猫: 此 ...

  9. 小程序 | 基于WAMP的新闻网小程序开发(体验全栈式开发微信小程序)

    之前学习微信小程序开发,主要是基于JS.WXML.WXSS的前端开发,对于后端技术不精的我也是使用了微信开发者工具中的云开发功能,但是今天突发奇想,特别想体验一下全栈式开发微信小程序,学习了一下基于W ...

  10. 全栈开发和web开发_成为全栈开发人员

    全栈开发和web开发 This popular article has been updated in June 2017 to include modern technologies. 该热门文章已 ...

最新文章

  1. [MySQL FAQ]系列 -- MySQL支持绑定到多个ip上吗
  2. linux 虚拟机不能启动不了系统,虚拟机更改linux初始启动5,出现无法启动现象
  3. laravel ajax评论,javascript-Laravel 5.8尝试进行AJAX调用以删除评...
  4. ios下划线变量:为什么变量前要加下划线才有用?
  5. oracle+buffer+busy+wait,Oracle数据库buffer busy wait等待事件 (2)
  6. RegeX版本更新至2.0.0.4 加入英文语言包
  7. 判断平面内两直线平行c语言,5.2 平行线及其判定教学设计模板
  8. 【历史】衣米魔兽怀旧服发展历史事件以及衣米魔兽重要玩家传记
  9. java itextsharp_ITextSharp 初次接触
  10. 如何根据经纬度获取地址名称
  11. pigeon-remoting模块功能分析
  12. 桌面计算机图标怎么取消,win7图标箭头怎么取消,win7去除电脑桌面图标箭头
  13. 双手不离键盘,Vim和Vimium扩展
  14. MXNet使用---复现、训练、测试人脸角度检测FSA-Net(SSR-MT)模型为例
  15. MTK机器原始OTA更新方法
  16. “西游记之大圣归来”短评主题分析-Latent Dirichlet Allocation
  17. 关于虚拟机中安装Ubuntu时界面显示不全的解决办法
  18. 【学习记录贴16】cesium进行三维发布
  19. 【封神台 - 掌控安全靶场】尤里的复仇 Ⅰ 小芳!一二三四五六七章
  20. 如何查看磁盘空间是否够用

热门文章

  1. 分布式任务调度平台 XXL-JOB
  2. mysql merge 分区
  3. 跟着百度学PHP[14]-PDO-优化驱动
  4. #27 回文数字 Palindrome Detector
  5. 解决 Error:No suitable device found: no device found for connection quot;System eth0quot;
  6. 我的阿里梦——淘宝前端必备技能
  7. The PNP sensor:- This is a sensor who...
  8. java金额小写转大写(8.2)
  9. vb 搜索指定目录下的指定类型文件
  10. 第7章 jQuery中的事件与动画