Код файла статистики предыдущего сообщения, в котором выводится накопленный трафик за весь день. (форму для выбора дня/месяца/года я не стал копировать, её можно взять в предыдущем сообщении)
Выглядет это так:
Проверка, если была выбрана дата, тоформируем назвние файла статистики изходя из этой даты, либо, если дата не выбрана, формируем статистику за сегодняшний день
<?php$ddat = date("d.m.Y");
if(!isset($_GET["den"])) { $filename = "stat".$ddat.".log"; $nowdate = $ddat;}
else {$filename = "stat".$_GET["den"].".".$_GET["mesac"].".".$_GET["god"].".log"; $nowdate = $_GET["den"].".".$_GET["mesac"].".".$_GET["god"];}
Открываем файл статистики
$file = fopen("/var/www/statlog/$filename","r");
print "<table width=300 border=1 bgcolor=#e0e0e0><caution><i>Статистика трафика за $nowdate</i></caution><tr><th>Кб</th><th>Ip</th><th>Имя</th></tr>";
Читаем из файл все данные, и помещаем их в массив
while(!feof($file)) {
$ff[] = explode("\t", fgets($file));
}
Массив соответствия пользователей и ip адресов
$ipname = Array(
"192.168.0.31" => "User1",
"192.168.0.30" => "User2",
"192.168.0.32" => "User3",
"192.168.0.20" => "User4",
"192.168.0.9" => "User5",
"192.168.0.5" => "User6",
"192.168.0.27" => "User7",
"192.168.0.24" => "User8",
"192.168.0.3" => "User9",
"192.168.0.21" => "User10"
);
Для удобства, расскрашиваем трафик разными цветами, в зависимости от объема.
$cc = count($ff)-11;
for($i=0; $i<count($ff)-1; $i++){
$str=strval($ff[$i][1]);
if($ff[$i][0] >= 100000 && $ff[$i][0] <200000) {$color = "red";}
elseif($ff[$i][0] >=50000 && $ff[$i][0] <100000) {$color = "orange";}
elseif($ff[$i][0] >=10000 && $ff[$i][0] <50000) {$color = "yellow";}
elseif($ff[$i][0] >= 200000) {$color = "#cb0000";}
else {$color="green";}
Выводим информацию на экран
if($i >= $cc)Выбираем все ip адреса из массива ipname
{
$nam = $ipname[trim($ff[$i][1])];
$sum += $ff[$i][0];
print "<tr><td><font color=$color>".$ff[$i][0]."</font></td><td>".$ff[$i][1]."</td><td>".$nam."</td></tr>\n";
}
}
print "</table>";
print "Всего: ".$sum." Кб";
print "<table border=1>";
$keymass = array_keys($ipname);
Печатаем диапозоны времени и ip адреса - заголовки таблицы
print "<tr><td>Ip</td>";
for($f2=0;$f2<count($ff)-1; $f2+=10)
{
print "<th>".$ff[$f2][2]."</th>";
}
print "</tr>";
for($key=0; $key<count($keymass); $key++)
{
print "<tr><th>".$ff[$key][1]."</th>";
Выводим статистику, накопленный тарфик, и разницу объема трафика за промежуток времени. Трафик также расскрашен в зависимости от объема, для наглядности.
for($f=0; $f<count($ff); $f++)
{
if($ff[$f][1] == $keymass[$key])
{
$s_um = round($ff[$f][0]-$ff[$f-10][0],2);
if($s_um < 1000) {$colors = "green";}
elseif($s_um >= 1000 && $s_um <2000 ) {$colors = "blue";}
elseif($s_um >= 2000 && $s_um< 5000) {$colors = "orange";}
elseif($s_um >= 5000) {$colors = "red";}
else {$colors = "black";}
print "<td>".$ff[$f][0]."<br><font color=".$colors." size=-1>+".$s_um."</font></td>";
}
}
print "</tr>";
}
print "</table>";
Комментариев нет:
Отправить комментарий