栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > PHP

完美的php分页类

PHP 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

完美的php分页类

本文实例为大家分享了php分页类的具体代码,供大家参考,具体内容如下

 "条记录", 
 'prev' => "上一页", 
 'next' => "下一页", 
 'first'=> "首页", 
 'last' => "末页"
      );    
    //在分页信息中显示内容,可以自己通过set()方法设置
    private $listNum = 10;    //默认分页列表显示的个数

    
    public function __construct($total, $listRows=25, $query="", $ord=true){
      $this->total = $total;
      $this->listRows = $listRows;
      $this->uri = $this->getUri($query);
      $this->pageNum = ceil($this->total / $this->listRows);
      
      if(!empty($_GET["page"])) {
 $page = $_GET["page"];
      }else{
 if($ord)
   $page = 1;
 else
   $page = $this->pageNum;
      }

      if($total > 0) {
 if(preg_match('/D/', $page) ){
   $this->page = 1;
 }else{
   $this->page = $page;
 }
      }else{
 $this->page = 0;
      }
      
      $this->limit = "LIMIT ".$this->setLimit();
    }

    
    function set($param, $value){
      if(array_key_exists($param, $this->config)){
 $this->config[$param] = $value;
      }
      return $this;
    }
    
    
    function __get($args){
      if($args == "limit" || $args == "page")
 return $this->$args;
      else
 return null;
    }
    
    
    function fpage(){
      $arr = func_get_args();

      $html[0] = " 共 {$this->total} {$this->config["head"]} ";
      $html[1] = " 本页 ".$this->disnum()." 条 ";
      $html[2] = " 本页从 {$this->start()}-{$this->end()} 条 ";
      $html[3] = " {$this->page}/{$this->pageNum}页 ";
      $html[4] = $this->firstprev();
      $html[5] = $this->pageList();
      $html[6] = $this->nextlast();
      $html[7] = $this->goPage();
      
      $fpage = '';
      if(count($arr) < 1)
 $arr = array(0, 1,2,3,4,5,6,7);
      
      for($i = 0; $i < count($arr); $i++)
 $fpage .= $html[$arr[$i]];
    
      $fpage .= '';
      return $fpage;
    }
    
    
    private function setLimit(){
      if($this->page > 0)
 return ($this->page-1)*$this->listRows.", {$this->listRows}";
      else
 return 0;
    }

    
    private function getUri($query){  
      $request_uri = $_SERVER["REQUEST_URI"];  
      $url = strstr($request_uri,'?') ? $request_uri : $request_uri.'?';
      
      if(is_array($query))
 $url .= http_build_query($query);
      else if($query != "")
 $url .= "&".trim($query, "?&");
    
      $arr = parse_url($url);

      if(isset($arr["query"])){
 parse_str($arr["query"], $arrs);
 unset($arrs["page"]);
 $url = $arr["path"].'?'.http_build_query($arrs);
      }
      
      if(strstr($url, '?')) {
 if(substr($url, -1)!='?')
   $url = $url.'&';
      }else{
 $url = $url.'?';
      }
      
      return $url;
    }

    
    private function start(){
      if($this->total == 0)
 return 0;
      else
 return ($this->page-1) * $this->listRows+1;
    }

    
    private function end(){
      return min($this->page * $this->listRows, $this->total);
    }

    
    private function firstprev(){
      if($this->page > 1) {
 $str = " uri}page=1'>{$this->config["first"]} ";
 $str .= "uri}page=".($this->page-1)."'>{$this->config["prev"]} ";    
 return $str;
      }

    }
  
    
    private function pageList(){
      $linkPage = " ";
      
      $inum = floor($this->listNum/2);
      
      for($i = $inum; $i >= 1; $i--){
 $page = $this->page-$i;

 if($page >= 1)
   $linkPage .= "uri}page={$page}'>{$page} ";
      }
      
      if($this->pageNum > 1)
 $linkPage .= "{$this->page} ";
      
      
      for($i=1; $i <= $inum; $i++){
 $page = $this->page+$i;
 if($page <= $this->pageNum)
   $linkPage .= "uri}page={$page}'>{$page} ";
 else
   break;
      }
      $linkPage .= '';
      return $linkPage;
    }

    
    private function nextlast(){
      if($this->page != $this->pageNum) {
 $str = " uri}page=".($this->page+1)."'>{$this->config["next"]} ";
 $str .= " uri}page=".($this->pageNum)."'>{$this->config["last"]} ";
 return $str;
      }
    }

    
    private function goPage(){
 if($this->pageNum > 1) {
 return '  ';
      }
    }

    
    private function disnum(){
      if($this->total > 0){
 return $this->end()-$this->start()+1;
      }else{
 return 0;
      }
    }
  }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持考高分网。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/40220.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号