Goed, ik ben (nog steeds) bezig met mn traffic webpage. Het updaten van mn string wil echter maar niet lukken. Ik probeer het nu zo:
geeft:
Die laatste 2 lijnen slaan dus nergens op, die nullen .
verander ik 500 naar 600 dan krijg ik als output: eerst een 1100 en dan 1200 en daar blijft ie ook op.
Het gaat er dus om dat de dynamische $table_new en $table_current met elkaar vergeleken worden. De $table_new moet geupdate worden en naar een file geschreven worden zodat die door een andere page uitgelezen kan worden (wat al voor elkaar is).
$table_current wordt door een progje steeds veranderd en dus kan het zijn dat er ineens een ip tussen de anderen staat. Dat is geloof ik al goed werkende nu.
Het probleem is dus dat ik die update maar niet goed krijg, en dat er 2 lijntjes te veel zijn
het wil maar nie lukken
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
| <?PHP $mtime_data = microtime(); $mtime_data = explode(" ",$mtime_data); $mtime_data = $mtime_data[1] + $mtime_data[0]; $mtimestart_data = $mtime_data; $filename = "./trafdata.txt"; $table = file_get_contents($filename); $data = explode('#', $table); for ( $i = 1; $i <=count($data); $i++ ){ list($ip[], $total[], $received[], $send[], $tcp[], $udp[], $icmp[], $http[], $ftp[], $p2p[]) = explode('/', $data[$i]); } $table_current = "#Total/500.0/500.0/700.0/600.0/0/0/0/0/0 #192.168.168.11/100.0/200.0/300.0/400.0/0/0/0/0/0 #192.168.168.15/400.0/300.0/350.0/450.0/0/0/0/0/0 #192.168.168.251/300.0/350.0/150.0/100.0/0/0/0/0/0"; $data_current = explode('#', $table_current); for ( $i = 1; $i <=count($data_current); $i++ ) { list($ip_current[], $total_current[], $received_current[], $send_current[], $tcp_current[], $udp_current[], $icmp_current[], $http_current[], $ftp_current[], $p2p_current[]) = explode('/', $data_current[$i]); } for ( $i = 0; $i <=count($data_current); $i++ ) { if ($ip_current[$i] == $ip[$i]) { $ip_new[] = $ip_current[$i]; if ($total_current[$i] >= $total[$i]) { $total_new[] = ($total[$i] + $total_current[$i]);} else $total_new[] = $total_current[$i]; if ($received_current[$i] >= $received[$i]) { $received_new[] = ($received[$i] + $received_current[$i]);} else $received_new[] = $received_current[$i]; if ($send_current[$i] >= $send[$i]) { $send_new[] = ($send[$i] + $send_current[$i]);} else $send_new[] = $send_current[$i]; } } print"<P>"; for ( $i = 0; $i <=count($data_current); $i++ ){ $table_new = "#$ip_new[$i]/$total_new[$i]/$received_new[$i]/$send_new[$i]"; print"$table_new<br>"; $table_new = $table_current; $file = fopen($filename, 'w+b'); fputs($file, $table_new); } fclose($file); $mtime_data = microtime(); $mtime_data = explode(" ",$mtime_data); $mtime_data = $mtime_data[1] + $mtime_data[0]; $mtimeend_data = $mtime_data; $totaltime_data = ($mtimeend_data - $mtimestart_data); echo "<p>"; print round($totaltime_data,5); ?> |
geeft:
code:
1
2
3
4
5
6
7
8
9
| #Total/1000/1000/1400 #192.168.168.11/200/400/600 #192.168.168.15/800/600/700 #192.168.168.251/600/700/300 #/0/0/0 #/0/0/0 0.01573 |
Die laatste 2 lijnen slaan dus nergens op, die nullen .
verander ik 500 naar 600 dan krijg ik als output: eerst een 1100 en dan 1200 en daar blijft ie ook op.
Het gaat er dus om dat de dynamische $table_new en $table_current met elkaar vergeleken worden. De $table_new moet geupdate worden en naar een file geschreven worden zodat die door een andere page uitgelezen kan worden (wat al voor elkaar is).
$table_current wordt door een progje steeds veranderd en dus kan het zijn dat er ineens een ip tussen de anderen staat. Dat is geloof ik al goed werkende nu.
Het probleem is dus dat ik die update maar niet goed krijg, en dat er 2 lijntjes te veel zijn

[ Voor 9% gewijzigd door nzyme op 28-02-2004 15:13 . Reden: damn, niet echt leesbaar die code blokken. Nu gelukkig wel :) ]
| Hardcore - Terror |