PHP實現(xiàn)適用于文件內容操作的分頁類

字號:


    本文實例為大家分享了PHP實現(xiàn)文件內容操作的分頁類,強調一下只針對文件的操作,供大家參考,具體內容如下
    <?php 
    class StrPage {
     private $current;  //當前頁 
     private $file;  //操作文件
     private $totalPage;  //總的頁數
     private $url;  //傳遞的參數
     private $pageLen;  //每頁顯示的長度
     function __construct( $file,$len = 200 ){
     $this->file = file_get_contents($file);
     $this->pageLen = $len;
     $this->current = isset($_GET['page'])?$_GET['page']:1;
     $this->totalPage = $this->getTotalPage();
     $this->url = $this->getUrl();
     }
     //獲取到這個文件總的長度
     private function getTotalPage(){
     return ceil(strlen($this->file)/$this->pageLen);
     }
     //獲取當前傳遞的參數,保留參數,page參數動態(tài)變化
     private function getUrl(){
     $url =parse_url($_SERVER['REQUEST_URI']);
     parse_str($url['query'],$queryArr);
     unset($queryArr['page']);
     $queryStr = http_build_query($queryArr);
     return $url['path'].'?'.$queryStr.'&page='; 
     }
     //首頁
     private function first(){
     if($this->current>1)
      return "<a href='".$this->url."1'>首頁</a>";
     }
     //上一頁
     private function pre(){
     if( $this->current > 1 )
      return "<a href='".$this->url.($this->current-1)."'>上一頁</a>";
     }
     //下一頁
     private function next(){
     if( $this->current < $this->totalPage)
      return "<a href='".$this->url.($this->current+1)."'>下一頁</a>";
     }
     //最后一頁
     private function end(){
     if( $this->current < $this->totalPage )
      return "<a href='".$this->url.$this->totalPage."'>末頁</a>";
     }
     public function pageList(){
     $pageListStr = '';
     for ($i=1;$i<=$this->totalPage;$i++){
      if($i==$this->current){
      $pageListStr.="<span style='font-size:20px;color:#f00'>".$i."</span> ";
      }else{
      $pageListStr.="<a href='".$this->url.$i."'>".$i." </a>";
      }
     }
     return $pageListStr;
     }
     public function pageStyle($style=1){
      switch ($style){
      case 1:
       return "共有".$this->totalPage."頁".$this->first().$this->pre().$this->pageList().$this->next().$this->end();
       break;
      case 2;
      return $this->pageList();
      break;
      }
     }
     public function getContents(){
     $prePageLen = strlen($this->subStrs($this->current-1));
     $currentPageLen = strlen($this->subStrs($this->current));
     return substr($this->file, $prePageLen,$currentPageLen-$prePageLen);
     }
     public function subStrs($page){ 
      $string = '';
      $len= $page*$this->pageLen;
      for( $i=0; $i<$len; $i++ ){
       if( ord(substr($this->file,$i,1))>0xa0 ){
       $string .= substr($this->file,$i,3);
       $i = $i+2;
      }else{
       $string .= substr($this->file, $i,1);
      }
      }
      return $string;
     }
    }
    以上就是本文的全部內容,希望對大家學習PHP程序設計有所幫助。