下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、功能强大的php分页函数_ 分页是每一个程序需要去理解的东西,学习过的几门语言中我发觉分页原理都是一样的,下面为php初学者分析一下php分页实现与最终面补充了一个超级强大的分页函数。 文章内容分页主要有两个方法: 方法一、按字数掌握进行分页 按字数分页方法简洁易用,但效果不好. 大致思想:首先、设定每页能容纳的最大字数,然后、计算文章内容的总字数,再由总字数和单页最大字数计算出出总页数,这样整个分页的预备工作就已经做好了. 具体到每一页的显示内容可以通过内容截取来实现,比如:页容纳500字,文章内容有2200字,那么当页面传递page=2时应当显示第501至1000之间的内容. 这种方法简洁
2、,但显示时可能会遇到麻烦,文章内容通常伴有HTML标签,进行内容切割时实现HTML标签的闭合有肯定难度,假如这个工作没做好,那么分页后的效果明显也是不好的. 方法二、通过分页符进行分页 通过分页符进行分页比起第一种方法要更为抱负。 大致思想:在编辑文章内容时往内容里面插入分页符(如:hr class=page),在文章显示时对文章内容进行分割,每一部分表示一个页的内容,通过传递参数掌握显示第几页。 这种方法比较人性化,到底通过人工掌握出来的分页截取的内容更符全我们的思维,而且可以肯定程度上避开HTML标签不闭合的情形。 分页显示:分页显示是将大批量的数据分批发送到客户端的重要手段之一,通常是将
3、数据库中的结果集人为的分成一段一段的来显示. 分类:PHP分页分为列表分页和内容分页,不管是列表分页还是内容分页,基本原理是一样的,将数据分批发送到客户端. pager.class.php:这是一个简洁的PHP分页显示类,目前支持两种分页模式,一种是最简洁的一般分页模式首页 上页 下页 尾页模式,另一种是经典分页模式,即:12345678910下一页尾页. 用法方法,代码如下: require_once pager.class.php; $pager = new pager($totalPage,$currentPage); / $pager对象 echo $pager-showpager()
4、; / 输出分页 此分页显示类的构造函数 /* total_page 总页数 current_num 当前页 sub_pages 每次显示的页数 subPage_link 每个分页的链接 subPage_type 分页模式 当subPage_type=1的时候为一般分页模式 如: 共4523条记录,每页显示10条,当前第1/453页 首页 上页 下页 尾页 当subPage_type=2的时候为经典分页样式 如: 当前第1/453页 首页 上页 1 2 3 4 5 6 7 8 9 10 下页 尾页 */ 代码如下: pager($total_page,$current_page,$sub_pa
5、ges=10,$subPage_link=,$subPage_type=2) 上述说的PHP分页的两种类别(列表分页和内容分页),信任列表分页对大家并不生疏,对于内容分页,常用的方法是以分页符的形式(比如: hr class=pager )将内容分割成多段,求出总页数,用当前页码去猎取分页显示列表,代码如下: ?php /* * 示例: * ?php * require_once(pager.class.php); * $subPages=new pager($totalPage,$currentPage); * echo $subPages-showpager(); * ? * */ cla
6、ss pager var $each_disNums;/每页显示的条目数 var $nums;/总条目数 var $current_page;/当前被选中的页 var $sub_pages;/每次显示的页数 var $pageNums;/总页数 var $page_array = array();/用来构造分页的数组 var $subPage_link;/每个分页的链接 var $subPage_type;/显示分页的类型 var $_lang = array( index_page = 首页, pre_page = 上一页, next_page = 下一页, last_page = 尾页,
7、current_page = 当前页:, total_page = 总页数:, current_show = 当前显示:, total_record = 总记录数: ); /* _construct是SubPages的构造函数,用来在创建类的时候自动运行. total_page 总页数 current_num 当前被选中的页 sub_pages 每次显示的页数 subPage_link 每个分页的链接 subPage_type 显示分页的类型 当subPage_type=1的时候 为一般分页模式 example: 共4523条记录,每页显示10条,当前第1/453页 首页 上页 下页 尾页 当
8、subPage_type=2的时候为经典分页样式 example: 当前第1/453页 首页 上页 1 2 3 4 5 6 7 8 9 10 下页 尾页 */ function _construct($total_page,$current_page,$sub_pages=10,$subPage_link=,$subPage_type=2) $this-pager($total_page,$current_page,$sub_pages,$subPage_link,$subPage_type); function pager($total_page,$current_page,$sub_pag
9、es=10,$subPage_link=,$subPage_type=2) if(!$current_page) $this-current_page=1; else $this-current_page=intval($current_page); $this-sub_pages=intval($sub_pages); $this-pageNums=ceil($total_page); if($subPage_link) if(strpos($subPage_link,?page=) = false AND strpos($subPage_link,page=) = false) $subP
10、age_link .= (strpos($subPage_link,?) = false ? ? : ) . page=; $this-subPage_link=$subPage_link ? $subPage_link : $_SERVERPHP_SELF . ?page=; $this-subPage_type = $subPage_type; /* show_SubPages函数用在构造函数里面。而且用来推断显示什么样子的分页 */ function showpager() if($this-subPage_type = 1) return $this-pagelist1(); else
11、if ($this-subPage_type = 2) return $this-pagelist2(); /* 用来给建立分页的数组初始化的函数。 */ function initArray() for($i=0;$i$this-sub_pages;$i+) $this-page_array$i=$i; return $this-page_array; /* construct_num_Page该函数用法来构造显示的条目 即使:12345678910 */ function construct_num_Page() if($this-pageNums $this-sub_pages) $cu
12、rrent_array=array(); for($i=0;$i$this-pageNums;$i+) $current_array$i=$i+1; else $current_array=$this-initArray(); if($this-current_page = 3) for($i=0;$icount($current_array);$i+) $current_array$i=$i+1; elseif ($this-current_page = $this-pageNums $this-current_page $this-pageNums - $this-sub_pages +
13、1 ) for($i=0;$icount($current_array);$i+) $current_array$i=($this-pageNums)-($this-sub_pages)+1+$i; else for($i=0;$icount($current_array);$i+) $current_array$i=$this-current_page-2+$i; return $current_array; /* 构造一般模式的分页 共4523条记录,每页显示10条,当前第1/453页 首页 上页 下页 尾页 */ function pagelist1() $subPageCss1Str=
14、; $subPageCss1Str.= $this-_langcurrent_page . $this-current_page. / .$this-pageNums. ; if($this-current_page 1) $firstPageUrl=$this-subPage_link.1; $prewPageUrl=$this-subPage_link.($this-current_page-1); $subPageCss1Str.=a href=$firstPageUrl$this-_langindex_page/a ; $subPageCss1Str.=a href=$prewPage
15、Url$this-_langpre_page/a ; else $subPageCss1Str.=$this-_langindex_page ; $subPageCss1Str.=$this-_langpre_page ; if($this-current_page $this-pageNums) $lastPageUrl=$this-subPage_link.$this-pageNums; $nextPageUrl=$this-subPage_link.($this-current_page+1); $subPageCss1Str.= a href=$nextPageUrl$this-_la
16、ngnext_page/a ; $subPageCss1Str.=a href=$lastPageUrl$this-_langlast_page/a ; else $subPageCss1Str.=$this-_langnext_page ; $subPageCss1Str.=$this-_langlast_page ; return $subPageCss1Str; /* 构造经典模式分页 当前第1/453页 首页 上页 1 2 3 4 5 6 7 8 9 10 下页 尾页 */ function pagelist2() $subPageCss2Str=; $subPageCss2Str.=
17、$this-_langcurrent_page . $this-current_page./ . $this-pageNums. ; if($this-current_page 1) $firstPageUrl=$this-subPage_link.1; $prewPageUrl=$this-subPage_link.($this-current_page-1); $subPageCss2Str.=a href=$firstPageUrl$this-_langindex_page/a ; $subPageCss2Str.=a href=$prewPageUrl$this-_langpre_pa
18、ge/a ; else $subPageCss2Str.=$this-_langindex_page ; $subPageCss2Str.=$this-_langpre_page ; $a=$this-construct_num_Page(); for($i=0;$icount($a);$i+) $s=$a$i; if($s = $this-current_page ) $subPageCss2Str.=span style=color:red;font-weight:bold;.$s./span; else $url=$this-subPage_link.$s; $subPageCss2Str.=a href=$url.$s./a; if($this-current_page $this-pageNums) $lastPageUrl=$this-subPage_link.$this-pageNums;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 总经理岗位责任制度
- 戳学生复学责任制度
- 托幼点安全责任制度
- 技术人员安全责任制度
- 护厂队责任制度
- 报账员岗位责任制度
- 挖掘机司机安全责任制度
- 控辍保学工作责任制度
- 摊主卫生责任制度
- 放射源责任制度
- 汽轮机组试车方案
- 漆安慎力学第二版课后习题解答及漆安慎-力学答案
- PCI围术期强化他汀治疗的获益和机制课件
- 沥青搅拌站安全生产风险分级管控体系方案资料(2022-2023版)
- WTO海关估价协议中文版
- 【广东省】工作证明模板(仅供参考)
- YS/T 613-2006碳膜电位器用电阻浆料
- GB/T 33365-2016钢筋混凝土用钢筋焊接网试验方法
- GB/T 17626.10-2017电磁兼容试验和测量技术阻尼振荡磁场抗扰度试验
- GB/T 14536.6-2008家用和类似用途电自动控制器燃烧器电自动控制系统的特殊要求
- 《乡风文明建设》(王博文)
评论
0/150
提交评论