找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 701|回复: 0
打印 上一主题 下一主题

PHP 读取大文件并显示的简单实例(推荐)

[复制链接]

2560

主题

2560

帖子

7622

积分

论坛元老

Rank: 8Rank: 8

积分
7622
跳转到指定楼层
楼主
发表于 2018-2-14 05:33:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

            使用PHP读取日志文件,当文件比较大的时候,会报内存不足,因此应该部分读取,读取指定的行数的数据

PHP代码:
readLogs(self:OG_PATH,self:AGES);
    $html="";
    foreach($result as $line){
      if(strpos($line,"error:")){
        $line="
".$line."
";
      }
      $html.="".$line."";
    }
    echo $html;
  }
  public static function showNginxLogs(){
    $test=new Test();
    $result=$test->readLogs(self::NGINX_LOG_PATH,self:AGES);
    $html="";
    foreach($result as $line){
      if(strpos($line,"error")){
        $line="
".$line."
";
      }
      $html.="".$line."";
    }
    echo $html;
  }
  /**
  * 读取日志
  */
  private function readLogs($filePath,$num=20){
    $fp = fopen($filePath,"r");
    $pos = -2;
    $eof = "";
    $head = false;  //当总行数小于Num时,判断是否到第一行了
    $lines = array();
    while($num>0){
      while($eof != "\n"){
        if(fseek($fp, $pos, SEEK_END)==0){  //fseek成功返回0,失败返回-1
          $eof = fgetc($fp);
          $pos--;
        }else{                //当到达第一行,行首时,设置$pos失败
          fseek($fp,0,SEEK_SET);
          $head = true;          //到达文件头部,开关打开
          break;
        }
         
      }
      array_unshift($lines,fgets($fp));
      if($head){ break; }         //这一句,只能放上一句后,因为到文件头后,把第一行读取出来再跳出整个循环
      $eof = "";
      $num--;
    }
    fclose($fp);
    return array_reverse($lines);
  }
}
Test::main();
?>
*{
  padding: 0;
  margin: 0;
}
.logsBox{
  margin:5px;
  padding: 5px;
  width: 600px;
  background: #000;
  color:#fff;
  font-size: 13px;
  float: left;
}
.logsBox .line{
  margin: 12px 0;
}
  日志读取...
  日志读取...
以上这篇PHP 读取大文件并显示的简单实例(推荐)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
            
            
您可能感兴趣的文章:
  • php读取大文件示例分享(文件操作类)
  • PHP读取大文件的多种方法介绍
  • PHP读取大文件末尾N行的高效方法推荐
  • php fseek函数读取大文件两种方法
  • PHP读取大文件的几种方法介绍
            
  • 分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    用户反馈
    客户端