最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PHP 讀取大文件并顯示的簡單實(shí)例(推薦)

 更新時(shí)間:2016年08月12日 10:54:26   投稿:jingxian  
下面小編就為大家?guī)硪黄狿HP 讀取大文件并顯示的簡單實(shí)例(推薦)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

使用PHP讀取日志文件,當(dāng)文件比較大的時(shí)候,會(huì)報(bào)內(nèi)存不足,因此應(yīng)該部分讀取,讀取指定的行數(shù)的數(shù)據(jù)

PHP代碼:

<?php
class Test{
  //日志路徑
  const LOG_PATH="E:\phpServer\Apache\logs\error.log";
  const NGINX_LOG_PATH="E:\phpServer\\nginx\logs\error.log";
  //顯示的行數(shù)
  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;  //當(dāng)總行數(shù)小于Num時(shí),判斷是否到第一行了 
    $lines = array(); 
    while($num>0){ 
      while($eof != "\n"){ 
        if(fseek($fp, $pos, SEEK_END)==0){  //fseek成功返回0,失敗返回-1 
          $eof = fgetc($fp); 
          $pos--; 
        }else{                //當(dāng)?shù)竭_(dá)第一行,行首時(shí),設(shè)置$pos失敗 
          fseek($fp,0,SEEK_SET); 
          $head = true;          //到達(dá)文件頭部,開關(guān)打開 
          break; 
        } 
         
      } 
      array_unshift($lines,fgets($fp)); 
      if($head){ break; }         //這一句,只能放上一句后,因?yàn)榈轿募^后,把第一行讀取出來再跳出整個(gè)循環(huán) 
      $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 讀取大文件并顯示的簡單實(shí)例(推薦)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論

靖西县| 金华市| 浦北县| 长海县| 万山特区| 太和县| 沙雅县| 昌吉市| 介休市| 泊头市| 民丰县| 高台县| 景东| 景洪市| 高平市| 互助| 白河县| 黄陵县| 千阳县| 青海省| 平山县| 祁连县| 慈利县| 鄂托克前旗| 荔浦县| 扬中市| 和政县| 东明县| 黔东| 社旗县| 彩票| 义马市| 松桃| 宿州市| 合江县| 白城市| 腾冲县| 宜都市| 清水县| 黄石市| 金堂县|