设为首页 收藏本站
查看: 1006|回复: 0

[经验分享] php分页类 潇湘博客

[复制链接]

尚未签到

发表于 2017-3-27 08:36:08 | 显示全部楼层 |阅读模式

  • <?php
  • classSubPages{

  • private$each_disNums;//每页显示的条目数
  • private$nums;//总条目数
  • private$current_page;//当前被选中的页
  • private$sub_pages;//每次显示的页数
  • private$pageNums;//总页数
  • private$page_array=array();//用来构造分页的数组
  • private$subPage_link;//每个分页的链接
  • private$subPage_type;//显示分页的类型
  • /*
  • __construct是SubPages的构造函数,用来在创建类的时候自动运行.
  • @$each_disNums每页显示的条目数
  • @nums总条目数
  • @current_num当前被选中的页
  • @sub_pages每次显示的页数
  • @subPage_link每个分页的链接
  • @subPage_type显示分页的类型

  • 当@subPage_type=1的时候为普通分页模式
  • example:共4523条记录,每页显示10条,当前第1/453页[首页][上页][下页][尾页]
  • 当@subPage_type=2的时候为经典分页样式
  • example:当前第1/453页[首页][上页]12345678910[下页][尾页]
  • */
  • function__construct($each_disNums,$nums,$current_page,$sub_pages,$subPage_link,$subPage_type){
  • $this->each_disNums=intval($each_disNums);
  • $this->nums=intval($nums);
  • if(!$current_page){
  • $this->current_page=1;
  • }else{
  • $this->current_page=intval($current_page);
  • }
  • $this->sub_pages=intval($sub_pages);
  • $this->pageNums=ceil($nums/$each_disNums);
  • $this->subPage_link=$subPage_link;
  • $this->show_SubPages($subPage_type);
  • //echo$this->pageNums."--".$this->sub_pages;
  • }


  • /*
  • __destruct析构函数,当类不在使用的时候调用,该函数用来释放资源。
  • */
  • function__destruct(){
  • unset($each_disNums);
  • unset($nums);
  • unset($current_page);
  • unset($sub_pages);
  • unset($pageNums);
  • unset($page_array);
  • unset($subPage_link);
  • unset($subPage_type);
  • }

  • /*
  • show_SubPages函数用在构造函数里面。而且用来判断显示什么样子的分页
  • */
  • functionshow_SubPages($subPage_type){
  • if($subPage_type==1){
  • $this->subPageCss1();
  • }elseif($subPage_type==2){
  • $this->subPageCss2();
  • }
  • }


  • /*
  • 用来给建立分页的数组初始化的函数。
  • */
  • functioninitArray(){
  • for($i=0;$i<$this->sub_pages;$i++){
  • $this->page_array[$i]=$i;
  • }
  • return$this->page_array;
  • }


  • /*
  • construct_num_Page该函数使用来构造显示的条目
  • 即使:[1][2][3][4][5][6][7][8][9][10]
  • */
  • functionconstruct_num_Page(){
  • if($this->pageNums<$this->sub_pages){
  • $current_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;$i<count($current_array);$i++){
  • $current_array[$i]=$i+1;
  • }
  • }elseif($this->current_page<=$this->pageNums&&$this->current_page>$this->pageNums-$this->sub_pages+1){
  • for($i=0;$i<count($current_array);$i++){
  • $current_array[$i]=($this->pageNums)-($this->sub_pages)+1+$i;
  • }
  • }else{
  • for($i=0;$i<count($current_array);$i++){
  • $current_array[$i]=$this->current_page-2+$i;
  • }
  • }
  • }

  • return$current_array;
  • }

  • /*
  • 构造普通模式的分页
  • 共4523条记录,每页显示10条,当前第1/453页[首页][上页][下页][尾页]
  • */
  • functionsubPageCss1(){
  • $subPageCss1Str="";
  • $subPageCss1Str.="共".$this->nums."条记录,";
  • $subPageCss1Str.="每页显示".$this->each_disNums."条,";
  • $subPageCss1Str.="当前第".$this->current_page."/".$this->pageNums."页";
  • if($this->current_page>1){
  • $firstPageUrl=$this->subPage_link."1";
  • $prewPageUrl=$this->subPage_link.($this->current_page-1);
  • $subPageCss1Str.="[<ahref='$firstPageUrl'>首页</a>]";
  • $subPageCss1Str.="[<ahref='$prewPageUrl'>上一页</a>]";
  • }else{
  • $subPageCss1Str.="[首页]";
  • $subPageCss1Str.="[上一页]";
  • }

  • if($this->current_page<$this->pageNums){
  • $lastPageUrl=$this->subPage_link.$this->pageNums;
  • $nextPageUrl=$this->subPage_link.($this->current_page+1);
  • $subPageCss1Str.="[<ahref='$nextPageUrl'>下一页</a>]";
  • $subPageCss1Str.="[<ahref='$lastPageUrl'>尾页</a>]";
  • }else{
  • $subPageCss1Str.="[下一页]";
  • $subPageCss1Str.="[尾页]";
  • }

  • echo$subPageCss1Str;

  • }


  • /*
  • 构造经典模式的分页
  • 当前第1/453页[首页][上页]12345678910[下页][尾页]
  • */
  • functionsubPageCss2(){
  • $subPageCss2Str="";
  • $subPageCss2Str.="当前第".$this->current_page."/".$this->pageNums."页";


  • if($this->current_page>1){
  • $firstPageUrl=$this->subPage_link."1";
  • $prewPageUrl=$this->subPage_link.($this->current_page-1);
  • $subPageCss2Str.="[<ahref='$firstPageUrl'>首页</a>]";
  • $subPageCss2Str.="[<ahref='$prewPageUrl'>上一页</a>]";
  • }else{
  • $subPageCss2Str.="[首页]";
  • $subPageCss2Str.="[上一页]";
  • }

  • $a=$this->construct_num_Page();
  • for($i=0;$i<count($a);$i++){
  • $s=$a[$i];
  • if($s==$this->current_page){
  • $subPageCss2Str.="[<spanstyle='color:red;font-weight:bold;'>".$s."</span>]";
  • }else{
  • $url=$this->subPage_link.$s;
  • $subPageCss2Str.="[<ahref='$url'>".$s."</a>]";
  • }
  • }

  • if($this->current_page<$this->pageNums){
  • $lastPageUrl=$this->subPage_link.$this->pageNums;
  • $nextPageUrl=$this->subPage_link.($this->current_page+1);
  • $subPageCss2Str.="[<ahref='$nextPageUrl'>下一页</a>]";
  • $subPageCss2Str.="[<ahref='$lastPageUrl'>尾页</a>]";
  • }else{
  • $subPageCss2Str.="[下一页]";
  • $subPageCss2Str.="[尾页]";
  • }
  • echo$subPageCss2Str;
  • }
  • }
  • ?>


  • <?php
  • require_once("SubPages.php");
  • //每页显示的条数
  • $page_size=20;
  • //总条目数
  • $nums=1024;
  • //每次显示的页数
  • $sub_pages=10;
  • //得到当前是第几页
  • $pageCurrent=$_GET["p"];
  • //if(!$pageCurrent)$pageCurrent=1;

  • $subPages=newSubPages($page_size,$nums,$pageCurrent,$sub_pages,"test.php?p=",2);
  • ?>

转载:http://www.samchug.com/PHP/12183#

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-355862-1-1.html 上篇帖子: PHP文件上传 较完整 下篇帖子: php开发工具之PHPxref
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表