xgnic 发表于 2018-2-11 11:52:13


            本文实例讲述了PHP实现的分页类定义与用法。分享给大家供大家参考,具体如下:
total = $_total ? $_total : 1;
   $this->pagesize = $_pagesize;
   $this->pagenum = ceil($this->total / $this->pagesize);
   $this->page = $this->setPage();
   $this->limit = "LIMIT ".($this->page-1)*$this->pagesize.",$this->pagesize";
   $this->url = $this->setUrl();
   $this->bothnum = 2;
   }
   //拦截器
   private function __get($_key) {
   return $this->$_key;
   }
   //获取当前页码
   private function setPage() {
   if (!empty($_GET['page'])) {
      if ($_GET['page'] > 0) {
          if ($_GET['page'] > $this->pagenum) {
             return $this->pagenum;
          } else {
             return $_GET['page'];
          }
      } else {
          return 1;
      }
   } else {
      return 1;
   }
   }
   //获取地址
   private function setUrl() {
   $_url = $_SERVER["REQUEST_URI"];
   $_par = parse_url($_url);
   if (isset($_par['query'])) {
      parse_str($_par['query'],$_query);
      unset($_query['page']);
      $_url = $_par['path'].'?'.http_build_query($_query);
   }
   return $_url;
   }   //数字目录
   private function pageList() {
   for ($i=$this->bothnum;$i>=1;$i--) {
      $_page = $this->page-$i;
      if ($_page url.'&page='.$_page.']'.$_page.' ';
   }
   $_pagelist .= ' '.$this->page.' ';
   for ($i=1;$ibothnum;$i++) {
      $_page = $this->page+$i;
      if ($_page > $this->pagenum) break;
      $_pagelist .= ' '.$_page.' ';
   }
   return $_pagelist;
   }
   //首页
   private function first() {
   if ($this->page > $this->bothnum+1) {
      return ' 1 ...';
   }
   }
   //上一页
   private function prev() {
   if ($this->page == 1) {
      return '上一页';
   }
   return ' 上一页 ';
   }
   //下一页
   private function next() {
   if ($this->page == $this->pagenum) {
      return '下一页';
   }
   return ' 下一页 ';
   }
   //尾页
   private function last() {
   if ($this->pagenum - $this->page > $this->bothnum) {
      return ' ...'.$this->pagenum.' ';
   }
   }
   //分页信息
   public function showpage() {
   $_page .= $this->first();
   $_page .= $this->pageList();
   $_page .= $this->last();
   $_page .= $this->prev();
   $_page .= $this->next();
   return $_page;
   }
}
?>
页: [1]
查看完整版本: PHP实现的分页类定义与用法示例