首页 > php教程 > php手册 > 兼容url路由的php分页类

兼容url路由的php分页类

WBOY
发布: 2016-06-07 11:43:49
原创
1486 人浏览过

该分页类兼容url路由的php分页类
该类有个不足的地方,那就是post传的参数无法获取,如果有哪位大神解决了这个问题还希望给小弟分享一下!该文章同时发布在自己的博客上(http://wanql.sinaapp.com/blog_21.html),希望大家帮忙顶下 ^^
上代码!!!class Page{<br>     private $total;                         //数据表中总记录数<br>     private $listRows;                      //每页显示的条数<br>     private $limit;                         //SQL语句中使用limit从句,限制获取记录数<br>     private $uri;                           //自动获取url的请求地址<br>     private $pageNum;                       //总页数<br>     private $page;                          //当前页<br>     private $config = array(<br>                 'head' => '条记录',<br>                 'prev' => '上一页',<br>                 'next' => '下一页',<br>                 'first' => '首页',<br>                 'last' => '末页'<br>             );              //在分页信息中显示内容,可以自己通过set()方法设置<br>     private $listNum = 5;               //默认分页列表显示的个数<br>      <br>     /**<br>      * 构造方法,可以设置分页类的属性<br>      * @param int $total              计算分页的总记录数<br>      * @param int $listRows      可选的,设置每页显示的记录数,默认25<br>      * @param mixed $query    可选的,为向目标页面传递参数,可以是数组,也可以是查询字符串格式<br>      * @param bool $ord             默认是true,页面从第一页开始显示,false则从最后一页开始显示<br>      */<br>     public function __construct($total, $listRows=25, $query='', $ord=true){<br>         $this->total = $total;<br>         $this->listRows = $listRows;<br>         $this->uri = $this->getUri($query);<br>         $this->pageNum = ceil($this->total/$this->listRows);<br>          <br>         /*以下判断用来设置当前页*/<br>         if(!empty($_GET['page'])){<br>             $page = $_GET['page'];<br>         }else{<br>            if($ord){<br>                 $页 = 1;<br>             }其他{<br>                 $page = $this->pageNum;<br>             }<br>         }<br>          <br>         if($total > 0){<br>             if(preg_match('/D/', $page)){<br>                 $this->页 = 1;<br>             }其他{<br>                 $this->page = $page;<br>             }<br>         }<br>          <br>         //$this->limit = 'LIMIT'.$this->setLimit();<br>         $this->limit = $this->setLimit();<br>     }<br>      <br>     /**<br>      * 用于设置显示分页的信息,可以进行连贯操作<br>      * @param string $param   成员属性数组config的下表<br>      * @param string $value     用于设置config下标对应的元素值<br>      * @return object                   返回本对象自己$this,用于连贯操作<br>      */<br>     函数 __set($param, $value){<br>         if(array_key_exists($param, $this->config)){<br>             $this->config[$param] = $value;<br>         }<br>         //返回$this;<br>     }<br>      <br>     /* 可以在对象外部使用,直接获取树成员属性limit和page的值*/<br>     函数 __get($args){<br>         if($args == '限制' || $args == '页面'){<br>             返回$this->$args;<br>         }其他{<br>             返回 null;<br>         }<br>     }<br>      <br>     /**<br>      * 按指定的格式输出分页<br>      * @param int 0-7的数字分别作为参数,用于自定义输出分页结构和调整结构的顺序,默认输出全部结构<br>      * @return string 分页信息内容<br>      */<br>     函数 fpage(){<br>         $arr = func_get_args();<br>          <br>         $html[0] = " 共<b> {$this->总计} </b>{$this->config['head']} ";<br>         $html[1] = " 本页<b>".$this->disnum()."</b>条 ";<br>         $html[2] = " 本页从<b>{$this->start()} - {$this->end()}</b>条 ";<br>         $html[3] = " <b>{$this->page}/{$this->pageNum}</b>页 ";<br>         $html[4] = $this->firstprev();<br>         $html[5] = $this->pageList();<br>         $html[6] = $this->nextlast();<br>         $html[7] = $this->goPage();<br>          <br>         $fpage = '<div style="font:12px \&#039;\5B8B\4F53\&#039;,san-serif;">';<br>          <br>         if(count($arr)<1){<br /> $arr = array(0,1,2,3,4,5,6,7);<br /> }<br /> <br /> for($i=0; $i<count($arr); $i++){<br /> $fpage .= $html[$arr[$i]];<br /> }<br /> <br /> $fpage .= &#039;</div>';<br>         返回 $fpage;<br>     }<br>      <br>      <br>      <br>     /*在对象内部使用,用于自动获取访问的当前url*/<br>     私有函数 getUri($query){<br>         $request_uri = $_SERVER['REQUEST_URI'];<br>         $url=strstr($request_uri,'?')? $request_uri : $request_uri.'?';<br>          <br>         if(is_array($query)){<br>             $url .= http_build_query($query);<br>         }else if($query!=''){<br>             $url .= '&'.trim($query, '?&');<br>         }<br>          <br>         $arr = parse_url($url);<br>          <br>         if(isset($arr['query'])){<br>             parse_str($arr['query'], $arrs);<br>             取消设置($arrs['page']);<br>             $url = $arr['path'].'?'.http_build_query($arrs);<br>         }<br>          <br>         if(strstr($url,'?')){<br>             if(substr($url, -1)!='?'){<br>                 $url = $url.'&';<br>             }<br>         }其他{<br>             $url .='?';<br>         }<br>         返回 $url;<br>     }<br>      <br>     /* 方法,设置限制*/<br>     私有函数 setLimit(){<br>         if($this->页>0){<br>             return ($this->page - 1)*$this->listRows.", {$this->listRows}";<br>         }其他{<br>             返回0;<br>         }<br>     }<br>      <br>     /*在对象内部使用的方法,用于获取当前页面开始的记录数*/<br>     私有函数start(){<br>         if($this->总计 == 0){<br>             返回0;<br>         }其他{<br>             return ($this->page-1) * $this->listRows 1;<br>         }<br>     }<br>      <br>     /*用于获取当前页结束的记录数*/<br>     私有函数 end(){<br>         return min($this->page * $this->listRows, $this->total);<br>     }<br>      <br>     /*用于获取本页显示的记录条数*/<br>     私有函数 disnum(){<br>         if($this->总计>0){<br>            返回 $this->end() - $this->start() 1;<br>         }其他{<br>             返回0;<br>         }<br>     }<br>      <br>     /*用于获取上一页和首页的操作信息*/<br>     私有函数firstprev(){<br>         if($this->页>1){<br>             $str = " <a>uri}page=1'>{$this->config['first']}</a> ";<br>             $str .= "<a href='{$this->uri}page=".($this->page-1)."'>{$this->config['prev'] }</a> “;<br>             返回 $str;<br>         }<br>     }<br>      <br>     私有函数 pageList(){<br>         $linkPage = ' <b>';<br>         $pageSub = $this->page%$this->listNum;<br>         if($pageSub==0 && $this->page>0){<br>             $pageSub = $this->listNum;<br>         }<br>         /*当前页面前面的列表*/<br>         for($i=$pageSub-1; $i >= 1; $i--){<br>             $page = $this->page-$i;<br>             if($page >= 1){<br>                 $linkPage .= "<a href='{$this->uri}page={$page}'>{$page}</a> ";<br>             }<br>         }<br>          <br>         /*当前页的信息*/<br>         if($this->pageNum > 1){<br>             $linkPage .= "<span style='padding:1px 2px;background:#BBB;color:white;'>{$this->页面}</span> ";<br>         }<br>          <br>         /*当前页后面的列表*/<br>         for($i=1; $ilistNum-$pageSub; $i ){<br>             $page = $this->page  $i;<br>             if($pagepageNum){<br>                 $linkPage .= "<a href='{$this->uri}page={$page}'>{$page}</a> ";<br>             }其他{<br>                 休息;<br>             }<br>         }<br>          <br>         $linkPage .= '</b>';<br>         返回 $linkPage;<br>     }<br>      <br>     /*用于获取页数列表信息*/<br>     私有函数 pageListBak(){<br>        $linkPage = ' <b>';<br>          <br>         $inum = floor($this->listNum/2);<br>         /*当前页面前面的列表*/<br>         for($i=$inum; $i >= 1; $i--){<br>             $page = $this->page-$i;<br>             if($page >= 1){<br>                 $linkPage .= "<a href='{$this->uri}page={$page}'>{$page}</a> ";<br>             }<br>         }<br>          <br>         /*当前页的信息*/<br>         if($this->pageNum > 1){<br>             $linkPage .= "<span style='padding:1px 2px;background:#BBB;color:white;'>{$this->page}</span> ";<br>         }<br>          <br>         /*当前页后面的列表*/<br>         for($i=1; $i<=$inum; $i ){<br />             $page = $this->page   $i;<br>             if($page<=$this->pageNum){<br>                 $linkPage .= "<a href='{$this->uri}page={$page}'>{$page}</a> ";<br>             }else{<br>                 break;<br>             }<br>         }<br>          <br>         $linkPage .= '</b>';<br>         return $linkPage;<br>     }<br>      <br>     /*获取下一页和尾页的操作信息*/<br>     private function nextlast(){<br>         if($this->page != $this->pageNum){<br>             $str = " <a href='{$this->uri}page=".($this->page 1)."'>{$this->config['next']}</a> ";<br>             $str .= " <a href='{$this->uri}page={$this->pageNum}'>{$this->config['last']}</a> ";<br>             return $str;<br>         }<br>     }<br>      <br>     /*用于显示和处理表单跳转页面*/<br>     private function goPage(){<br>         if($this->pageNum > 1){<br>            return ' <input style="width:20px;height:17px !important;height:18px;border:1px solid #cccccc" type="text" onkeydown="javascript:if(event.keyCode==13){var page=(this.value>'.$this->pageNum.')?'.$this->pageNum.':this.value;location=''.$this->uri.'page='页 ''}" value="'.$this->page.'" //><input style="cursor:pointer;background:#cccccc;width:25px;height:17px;border:1px solid # cccccc;” tyle="button" value="GO" onclick="javascript:var page=(this.previousSibling.value>'.$this->pageNum.')?'.$this->pageNum.':this. previousSibling.value;location=''.$this->uri.'page='页面''" />; ';<br>         }<br>     }<br> }</b>

AD:真正免费,域名虚机企业邮箱=0元

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门推荐
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板