aebc4ea2ddda3a193ba98b3b81711e5f9b50c228
bernd Webalizer/Statistik-Funktio...

bernd authored 14 years ago

1) <?php
2) 
3) require_once("inc/base.php");
4) require_once("vhosts.php");
5) 
6) require_role(ROLE_SYSTEMUSER);
7) 
8) $section = 'vhosts_stats';
9) 
10) // Stellt sicher, dass der angegebene VHost dem User gehört
11) $vhost = get_vhost_details($_REQUEST['vhost']);
12) 
13) if (! isset($_REQUEST['file']))
14) {
15)   $_REQUEST['file'] = 'index.html';
16) }
17) 
18) if (!preg_match('/((daily_|hourly_|ctry_)?(usage|agent|search|ref|url|site)(_[0-9]+)?|index)\.(png|html)/', $_REQUEST['file']))
19) {
20)   system_failure("Ungültiger Dateiname: »".filter_input_general($_REQUEST['file'])."«");
21) }
22) 
23) $path = '/home/stats/webalizer/data/' . $vhost['fqdn'];
24) $file = $path . '/' . $_REQUEST['file'];
25) 
26) if ( is_file($file) )
27) {
28)   DEBUG("opening file ".$file);
29)   if (preg_match('/\.png/', $file))
30)   {
31)     //Binärdateien
32)     header("Content-Type: image/png");
33)     header("Content-Length: " . filesize($file));
34)     header("Content-Transfer-Encoding: binary\n");
35)     
36)     $fp = fopen($file, "r");
37)     fpassthru($fp);
38)     die();
39)   }
40) 
41)   $html = iconv('latin9', 'utf8', file_get_contents($file));
42)   DEBUG($html);
43)   // Nur content vom HTML
44)   $html = preg_replace(':^.*?<BODY[^>]*>(.*)</BODY>.*$:si', '$1', $html);
45)   DEBUG($html);
46) 
bernd Diverse XML-Fehler behoben

bernd authored 14 years ago

47)   // <BR> rewriten
48)   $html = preg_replace('/<BR>/', '<BR />', $html);
49)   // <HR> rewriten
50)   $html = preg_replace('/<HR>/', '<HR />', $html);
51)   // <P> rewriten
52)   $html = preg_replace('/<P>/', '<BR />', $html);
53)   // NOWRAP rewriten
54)   $html = preg_replace('/NOWRAP/', 'nowrap="nowrap"', $html);
55)   // lowercase tag names and keys
56)   $html = preg_replace('/(<[^ ]+ )/e', "strtolower('$1')", $html);
57)   $html = preg_replace('/( [A-Z]+=)/e', "strtolower('$1')", $html);
58)   // xml-values mit anführungszeichen
59)   $html = preg_replace('/=([-0-9a-zA-Z]+)([ >])/', '="$1"$2', $html);
bernd Webalizer/Statistik-Funktio...

bernd authored 14 years ago

60)   // Bilder rewriten
bernd Diverse XML-Fehler behoben

bernd authored 14 years ago

61)   $html = preg_replace('_<img ([^>]+[^/])>_', '<img $1 />', $html);
62)   
63)   // Bilder rewriten
64)   $html = preg_replace('/src="((daily_|hourly_|ctry_)?usage(_[0-9]+)?\.png)"/', 'src="showstats?vhost='.$vhost['id'].'&amp;file=$1"', $html);
bernd Webalizer/Statistik-Funktio...

bernd authored 14 years ago

65)   // Interne Links rewriten
bernd Diverse XML-Fehler behoben

bernd authored 14 years ago

66)   $html = preg_replace('!href="(./)?((usage|agent|search|ref|url|site|index)(_[0-9]+)?\.html)"!', 'href="showstats?vhost='.$vhost['id'].'&amp;file=$2"', $html);