下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、PHP实现可自定义样式的分页类_ 本文实例为大家分享了PHP实现可自定义样式的分页类,供大家参考,具体内容如下 ?php /namespace Component; /* * 2021-3-27 * author ankang */ class Page private $ShowPage; private $CountPage; private $Floorp; private $PageUrl; private $PageClass; private $CurClass; /* * author ankang * param number $CountNum 数据总数 * param st
2、ring $PageUrl 跳转链接 * param string $PageClass a标签 总体样式 * param string $PageUrl 当前页样式 * param number $PageSize 每页显示的数据条数 * param number $ShowPage 每次显示的页数 */ public function _construct($CountNum, $PageUrl = NULL, $PageClass = NULL,$CurClass = NULL, $PageSize = 20, $ShowPage = 5) $this-ShowPage = $ShowP
3、age; $this-CountPage = ceil ( $CountNum / $PageSize ); $this-Floorp = floor ( $ShowPage / 2 ); / 偏移量 $this-PageClass = is_null ( $PageClass ) ? : $PageClass; $this-CurClass = is_null ( $CurClass ) ? : $CurClass; / $ServerURL = ( preg_match(/?/i, $_SERVERREQUEST_URI)?preg_replace(/p=0-9+/i, , $_SERVE
4、RREQUEST_URI) : $_SERVERREQUEST_URI.?; / if( substr($ButURL,0,2)=/ ) / $ServerURL = substr($ServerURL,1); / / $url = preg_replace(/p=d*/i, , $ServerURL); $url = ; /推举自己传url,不传也可以打开上面的代码自动猎取 $this-PageUrl = is_null ( $PageUrl ) ? $url : $PageUrl; /* * * param number $Page * param string $ShowToPage *
5、 首页,上下页,尾页 * param string $Html 标签元素,li,p * return string */ public function getPage($Page = 1, $ShowToPage = true, $Html = null) $StartPage = ($Page - $this-Floorp); / 开头页码 $EndPage = ($Page + $this-Floorp); / 结束页码 if ($this-CountPage $this-ShowPage) $StartPage = 1; $EndPage = $this-CountPage; if (
6、$StartPage 1) $StartPage = 1; $EndPage = $this-ShowPage; if ($EndPage $this-CountPage) $StartPage = $this-CountPage - $this-ShowPage + 1; $EndPage = $this-CountPage; $PageHtml = ; if (! is_null ( $Html ) if ($Html = li) $Shtml = li; $Ehtml = /li; else $Shtml = p; $Ehtml = /p; if (true = $ShowToPage)
7、 $PageHtml .= $Shtmla href=$this-PageUrlp=1 首页/a$Ehtml; $PrveUrl = $this-getPrve($Page); $PageHtml .= $Shtmla href=$PrveUrl 上一页/a$Ehtml; for($i = $StartPage; $i = $EndPage; $i +) if ($Page = $i) $PageHtml .= $Shtmla href=$this-PageUrlp=$i class=$this-CurClass$i/a$Ehtml; else $PageHtml .= $Shtmla hre
8、f=$this-PageUrlp=$i class=$this-PageClass$i/a$Ehtml; if (true = $ShowToPage) $NextUrl = $this-getNext($Page); $PageHtml .= $Shtmla href=$NextUrl下一页 /a$Ehtml; $PageHtml .= $Shtmla href=$this-PageUrlp=$this-CountPage 尾页 /a$Ehtml; return $PageHtml; public function getPrve($Page) if ($Page != 1) $Prve =
9、 $Page - 1; $PrveUrl = $this-PageUrlp=$Prve; else $PrveUrl = $this-PageUrlp=1; return $PrveUrl; public function getNext($Page) if ($Page != $this-CountPage) $Next = $Page + 1; $NextUrl = $this-PageUrlp=$Next; else $NextUrl = $this-PageUrlp=$this-CountPage; return $NextUrl; 再为大家分享一个主要用于新手学习php分页,代码简洁
10、有用,主要是说明很完整。 1. Page.class.php ?php /* * 分页类 * * 调用方式: * $p=new Page(总页数,显示页数,当前页码,每页显示条数,链接); * print_r($p-getPages(); /生成一个页码数组(键为页码,值为链接) * echo $p-showPages(1); /生成一个页码样式(可添加自定义样式) * * author: Dzer Email:358654744.com Blog:Dzer.me * version: 2021-12-25 09:09:42 * Last Modified time: 2021-12-28 1
11、7:37:13 */ /* 思路: 给我一个 总页数,需要显示的页数,当前页,每页显示的条数,连接 写一个方法 生成一个一维数组,键为页码 值为连接 写一个方法 返回一个生成好样式的页码(并且可以依据自己需要添加样式) 默认样式 共45条记录,每页显示10条,当前第1/4页 首页 上页 1 2 3 . 下页 尾页 */ class Page protected $count; /总条数 protected $showPages; /需要显示的页数 protected $countPages; /总页数 protected $currPage; /当前页 protected $subPages;
12、 /每页显示条数 protected $href; /连接 protected $page_arr=array(); /保存生成的页码 键页码 值为连接 /* * _construct 构造函数(猎取分页所需参数) * param int $count 总条数 * param int $showPages 显示页数 * param int $currPage 当前页数 * param int $subPages 每页显示数量 * param string $href 连接(不设置则猎取当前URL) */ public function _construct($count,$showPages,
13、$currPage,$subPages,$href=) $this-count=$count; $this-showPages=$showPages; $this-currPage=$currPage; $this-subPages=$subPages; /假如链接没有设置则猎取当前连接 if(empty($href) $this-href=htmlentities($_SERVERPHP_SELF); else $this-href=$href; $this-construct_Pages(); /* * getPages 返回页码数组 * return array 一维数组 键为页码 值为
14、链接 */ public function getPages() return $this-page_arr; /* * showPages 返回生成好的页码 * param int $style 样式 * return string 生成好的页码 */ public function showPages($style=1) $func=pageStyle.$style; return $this-$func(); /* * pageStyle1 分页样式(可参照这个添加自定义样式 例如pageStyle2() * 样式 共45条记录,每页显示10条,当前第1/4页 首页 上页 1 2 3 .
15、 下页 尾页 * return string */ protected function pageStyle1() /* 构造一般模式的分页 共4523条记录,每页显示10条,当前第1/453页 首页 上页 1 2 3 . 下页 尾页 */ $pageStr=共.$this-count.条记录,每页显示.$this-subPages.条; $pageStr.=当前第.$this-currPage./.$this-countPages.页 ; $_GETpage = 1; $pageStr.=spana href=.$this-href.?.http_build_query($_GET).首页/
16、a /span; /假如当前页不是第一页就显示上页 if($this-currPage1) $_GETpage = $this-currPage-1; $pageStr.=spana href=.$this-href.?.http_build_query($_GET).上页/a /span; foreach ($this-page_arr as $k = $v) $_GETpage = $k; $pageStr.=spana href=.$v.$k./a /span; /假如当前页小于总页数就显示下一页 if($this-currPage$this-countPages) $_GETpage
17、= $this-currPage+1; $pageStr.=spana href=.$this-href.?.http_build_query($_GET).下页/a /span; $_GETpage = $this-countPages; $pageStr.=spana href=.$this-href.?.http_build_query($_GET).尾页/a /span; return $pageStr; /* * construct_Pages 生成页码数组 * 键为页码,值为链接 * $this-page_arr=Array( * 1 = index.php?page=1 * 2
18、= index.php?page=2 * 3 = index.php?page=3 * .) */ protected function construct_Pages() /计算总页数 $this-countPages=ceil($this-count/$this-subPages); /依据当前页计算前后页数 $leftPage_num=floor($this-showPages/2); $rightPage_num=$this-showPages-$leftPage_num; /左边显示数为当前页减左边该显示的数 例如总显示7页 当前页是5 左边最小为5-3 右边为5+3 $left=$this-currPage-$leftPage_num; $left=max($left,1); /左边最小不能小于1 $right=$left+$this-showPages-1; /左边加显示页数减1就是右边显示数 $right=min($right,$this-countPages); /右边最大不能大于总页数 $left=max($right-$this-showPages+1,1); /确定右边再计算左边,必需二次计算 for ($i=$left; $i = $ri
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 沉渣检测施工方案(3篇)
- 丝路会议施工方案(3篇)
- 中班防暴应急预案(3篇)
- 2026年青岛酒店管理职业技术学院单招职业倾向性考试题库含答案详解(能力提升)
- 2026年陇南师范高等专科学校单招职业倾向性测试题库带答案详解(b卷)
- 2026年青海省海北藏族自治州单招职业适应性考试题库附参考答案详解(基础题)
- 关于励志的研究报告
- 2026年青海省海西蒙古族藏族自治州单招职业适应性测试题库含答案详解(综合卷)
- 番茄饮品产品策略研究报告
- 2026年青岛恒星科技学院单招职业适应性测试题库含答案详解
- 2025吉林农业大学三江实验室人才招聘考试模拟试题及答案解析
- 电动地牛安全培训课件
- ip电话施工方案
- 《恶意》读书分享演讲稿模版
- DB5301∕T 23-2019 园林绿化工程验收规范
- 2026中考英语复习必背口语听力高频重点词汇
- 【2024-11月更新】武术18课时大单元(教学设计)
- 农业大数据课件
- 2025《社会主义发展史》教学大纲
- 河南省安全生产职责清单
- 国家基层糖尿病管理防治培训试题及答案
评论
0/150
提交评论