2014-03-13 94 views
0

我有一个名为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; 
} 

但它只在当时解析日志文件。有没有办法同时解析所有的日志文件,并获得每个文件的特定内容? 备受赞赏!在这些统计文件

<?php 

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

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

} 
+0

awstats文件夹是否包含日志文件以外的任何内容?你想分析所有的时间,或只是解析某个日期范围? – jaredk

+0

不,它只包含日志文件'032014.test.txt'&'022014.test.txt'等。 – user3350731

+0

我需要同时解析它们 – user3350731

回答

2

可以使用glob功能。 看来,这些变量参数是@ $ _SESSION ['awstat_mont']和$ _SESSION ['awstat_year'] 所以一个天真的解决方案将是一个双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是数组containig所有年份和月份,你想检查。 $ awstats将包含所有连接的日志文件。

1

你应该以某种方式迭代: