91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PHP如何讀取大文件并顯示

發布時間:2021-06-30 17:40:24 來源:億速云 閱讀:233 作者:chen 欄目:開發技術

這篇文章主要講解了“PHP如何讀取大文件并顯示”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“PHP如何讀取大文件并顯示”吧!

使用PHP讀取日志文件,當文件比較大的時候,會報內存不足,因此應該部分讀取,讀取指定的行數的數據

PHP如何讀取大文件并顯示

PHP代碼:

<?php
class Test{
  //日志路徑
  const LOG_PATH="E:\phpServer\Apache\logs\error.log";
  const NGINX_LOG_PATH="E:\phpServer\\nginx\logs\error.log";
  //顯示的行數
  const PAGES=50;
  public static function main(){
    header("content-type:text/html;charset=utf-8");
    
    if(!empty($_GET['action'])){
      self::$_GET['action']();
      exit;
    }
  }

  public static function showApacheLogs(){
    $test=new Test();
    $result=$test->readLogs(self::LOG_PATH,self::PAGES);
    $html="";
    foreach($result as $line){
      if(strpos($line,"error:")){
        $line="<font color='red'>".$line."</font>";
      }
      $html.="<div class='line'>".$line."<div>";
    }
    echo $html;
  }
  public static function showNginxLogs(){
    $test=new Test();
    $result=$test->readLogs(self::NGINX_LOG_PATH,self::PAGES);
    $html="";
    foreach($result as $line){
      if(strpos($line,"error")){
        $line="<font color='red'>".$line."</font>";
      }
      $html.="<div class='line'>".$line."<div>";
    }
    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();
?>
<style type="text/css">
*{
  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;
}
</style>
<div class="logsBox apache">
  <div class="line">日志讀取...</div>
</div>
<div class="logsBox nginx">
  <div class="line">日志讀取...</div>
</div>
<script type="text/javascript" src="http://apps.bdimg.com/libs/jquery/2.1.1/jquery.min.js"></script>
<script type="text/javascript">
  $(function(){

    function showLogs(api,showClass){
      function readLogs(){
        $.ajax({
          url:api,
          type:"get",
          dataType:"text",
          success:function(data){
            $(showClass).html(data);
          }
        });
      }
      readLogs();
      setInterval(readLogs,5000);
    }
    showLogs("?action=showNginxLogs",".nginx");
    showLogs("?action=showApacheLogs",".apache");
  });
</script>

感謝各位的閱讀,以上就是“PHP如何讀取大文件并顯示”的內容了,經過本文的學習后,相信大家對PHP如何讀取大文件并顯示這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

php
AI

钟祥市| 大新县| 云南省| 叶城县| 剑川县| 略阳县| 固镇县| 石楼县| 金堂县| 萍乡市| 乌鲁木齐县| 丰都县| 山阴县| 天等县| 西宁市| 高阳县| 富阳市| 安庆市| 龙山县| 航空| 阳城县| 泗水县| 西林县| 云龙县| 松潘县| 陆良县| 涟源市| 建宁县| 尚志市| 邢台县| 疏勒县| 新丰县| 阜宁县| 新民市| 班戈县| 华安县| 洛扎县| 如东县| 长沙市| 余庆县| 宜兰市|