PHP实现适用于文件内容操作的分页类

5年以前  |  阅读数:785 次  |  编程语言:PHP 

本文实例为大家分享了PHP实现文件内容操作的分页类,强调一下只针对文件的操作,供大家参考,具体内容如下


    <?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参数动态变化
     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分页功能操作

以上就是本文的全部内容,希望对大家学习PHP程序设计有所帮助。

 相关文章:
PHP分页显示制作详细讲解
SSH 登录失败:Host key verification failed
获取IMSI
将二进制数据转为16进制以便显示
获取IMEI
文件下载
贪吃蛇
双位运算符
PHP自定义函数获取搜索引擎来源关键字的方法
Java生成UUID
发送邮件
年的日历图
提取后缀名
在Zeus Web Server中安装PHP语言支持
让你成为最历害的git提交人
Yii2汉字转拼音类的实例代码
再谈PHP中单双引号的区别详解
指定应用ID以获取对应的应用名称
Python 2与Python 3版本和编码的对比
php封装的page分页类完整实例