如何分析多个日志文件

时间:2014-03-13 13:43:16

标签: php parsing

我有一个名为awstats的文件夹,其中包含每个月的所有日志文件,我需要解析所有这些文件并获取same time

所有文件的内容

我试过了:

$filename = DOCUMENT_ROOT."sites/".HOSTNAME."/awstats/".$_SESSION['awstat_month'].$_SESSION['awstat_year']."."HOSTNAME".txt";
if(file_exists($filename))
    $awstats = file_get_contents($filename) ; 
else {
    print_warning("the log file does not exist!");
    return;
}

但它当时只解析一个日志文件。有没有办法同时解析所有日志文件并获得每个文件的特定内容? 非常感激!

2 个答案:

答案 0 :(得分:2)

您可以使用glob功能:

<?php

foreach (glob(DOCUMENT_ROOT."sites/".HOSTNAME."/awstats/*.txt") as $filename) {

    $awstats = file_get_contents($filename) ;
    // do what you want with the content

}

答案 1 :(得分:1)

您应该以某种方式迭代这些统计文件。 似乎那些可变参数是@ $ _SESSION [&#39; awstat_mont&#39;]和$ _SESSION [&#39; awstat_year&#39;] 所以一个天真的解决方案将是一个双重的foreach循环: (我假设您使用的是php,所以请查看此处:http://de3.php.net/manual/en/control-structures.foreach.php

foreach ($allYearsToCheck as $year) {
   foreach ($allMonthToCheck as $month) {
      $filename =DOCUMENT_ROOT."sites/".HOSTNAME."/awstats/".$month.$year."."HOSTNAME".txt";
      if(file_exists($filename)){
         $awstats .= file_get_contents($filename) ; 
      }
      else {
         print_warning("the log file does not exist!"
      }
   }
}

其中allMontToCheck和allYearsToCheck是数组包含您想要检查的所有年份和月份。 $ awstats将包含连接的所有日志文件。