2014-03-13 131 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

你應該以某種方式迭代: