\n";
$stats_file = "$site" . "/" . "$history_file";
parse_history_file($current_dir, $stats_file);
}
function parse_history_file($site, $stats_file)
{
if (is_file($stats_file))
{
$row = 1;
$handle = fopen ("$stats_file","r");
while ($data = fgetcsv ($handle, 1000, " "))
{
// $num = count ($data);
// print "
$num fields in line $row:
\n";
$mbytes = round(($data[5] / 1024), 2);
$date = "$data[1]" . "-" . "$data[0]" . "-00";
// echo $date;
$query = "DELETE FROM stats WHERE site=\"$site\" AND date=\"$date\"";
$result = MYSQL_QUERY($query);
$query = "INSERT INTO stats (site, date, kbytes) values(\"$site\", \"$date\", $data[5])";
$result = MYSQL_QUERY($query) or die ("Kan nieuwe records niet in de database stoppen");
$row++;
}
fclose ($handle);
}
}
function scan_domains()
{
global $domains_base;
global $history_file;
if ($handle = opendir('/home/domains/'))
{
/* This is the correct way to loop over the directory. */
while (false !== ($file = readdir($handle)))
{
$directory = "$domains_base" . "/" . "$file";
if (is_dir($directory))
{
// echo "$file
\n";
find_history_file($directory);
}
}
closedir($handle);
}
}
function fetch_domains_list()
{
$query = "SELECT DISTINCT site FROM stats ORDER BY site";
$result = @MYSQL_QUERY($query) or die ("Kan de lijst met domeinnamen niet ophalen");
$number = @MYSQL_NUMROWS($result);
print "
";
}
function fetch_date_list()
{
$query = "SELECT DISTINCT date FROM stats ORDER BY date DESC";
$result = @MYSQL_QUERY($query) or die ("Kan de lijst met datums niet ophalen");
$number = @MYSQL_NUMROWS($result);
print "";
}
function fetch_date_results($date)
{
$query = "SELECT SUM(kbytes) FROM stats WHERE date=\"$date\"";
$result = @MYSQL_QUERY($query) or die ("Kan de lijst met gegevens niet ophalen");
$number = @MYSQL_NUMROWS($result);
$totalkb = @MYSQL_FETCH_ROW($result);
$totalmb = round(($totalkb[0] / 1024), 2);
$totalgb = round(($totalkb[0] / 1048576), 2);
print "Totaal verkeer geserveerd door webserver: $totalmb MB / $totalgb GB";
$query = "SELECT * FROM stats WHERE date=\"$date\" ORDER BY kbytes DESC";
$result = @MYSQL_QUERY($query) or die ("Kan de lijst met gegevens niet ophalen");
$number = @MYSQL_NUMROWS($result);
print "";
print "| Site | Date | Traffic (MB) | Traffic (GB) |
";
if( $number == 0 )
{
// nothing to see here, move along
print "| Leeg |
";
}
$i = 0;
while ($i < $number)
{
$site = mysql_result($result,$i,"site");
$kbytes = mysql_result($result,$i,"kbytes");
$mbytes = round(($kbytes / 1024), 2);
$gbytes = round(($kbytes / 1048576), 2);
print "| $site stats
totals |
$date | $mbytes MB | $gbytes GB |
";
$i++;
}
print "
";
}
function fetch_site_results($site)
{
$query = "SELECT SUM(kbytes) FROM stats WHERE site=\"$site\"";
$result = @MYSQL_QUERY($query) or die ("Kan de lijst met gegevens niet ophalen");
$number = @MYSQL_NUMROWS($result);
$totalkb = @MYSQL_FETCH_ROW($result);
$totalmb = round(($totalkb[0] / 1024), 2);
$totalgb = round(($totalkb[0] / 1048576), 2);
print "Totaal verkeer geserveerd door webserver: $totalmb MB / $totalgb GB";
$query = "SELECT * FROM stats WHERE site=\"$site\" ORDER BY date DESC";
$result = @MYSQL_QUERY($query) or die ("Kan de lijst met gegevens niet ophalen");
$number = @MYSQL_NUMROWS($result);
print "";
print "| Site | Date | Traffic (MB) | Traffic (GB) |
";
if( $number == 0 )
{
// nothing to see here, move along
print "| Leeg |
";
}
$i = 0;
while ($i < $number)
{
$site = mysql_result($result,$i,"site");
$date = mysql_result($result,$i,"date");
$kbytes = mysql_result($result,$i,"kbytes");
$mbytes = round(($kbytes / 1024), 2);
$gbytes = round(($kbytes / 1048576), 2);
print "| $site | $date | $mbytes MB | $gbytes GB |
";
$i++;
}
print "
";
}
if ($date == "")
{
if ($site == "")
{
scan_domains();
$today = date("Y-m-00");
header("Location: sites_stats.php?date=$today");
}
}
print "";
print "Traffic overzicht alle websites";
print "";
fetch_domains_list();
fetch_date_list();
if ($date)
{
fetch_date_results($date);
}
if ($site)
{
fetch_site_results($site);
}
MYSQL_CLOSE();
print "";
print "";
?>