我有一个名为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;
}
但它当时只解析一个日志文件。有没有办法同时解析所有日志文件并获得每个文件的特定内容? 非常感激!
答案 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将包含连接的所有日志文件。