Webalizer/Statistik-Funktio...
bernd authored 15 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)
|
Diverse XML-Fehler behoben
bernd authored 15 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);
|
Diverse XML-Fehler behoben
bernd authored 15 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'].'&file=$1"', $html);
|
Diverse XML-Fehler behoben
bernd authored 15 years ago
|
66) $html = preg_replace('!href="(./)?((usage|agent|search|ref|url|site|index)(_[0-9]+)?\.html)"!', 'href="showstats?vhost='.$vhost['id'].'&file=$2"', $html);
|