Hallo allen,
ik ben een beginnende PHP-er, maar met behulp van www.php.net kom ik er meestal aardig uit. Nu heb ik echter een probleem waar ik niet uit kom.
Voor een forum waar ik lid van ben, houdt ik wat statistieken bij van een spelletje. Met behulp van de lijst met alle highscores (een plain-text bestand) bereken ik aantallen, gemiddelden enz, en die post ik dan hier.
Gisteren ging de server waarop ik die stats draai echter down, en dat kwam volgens de eigenaar van de server hierdoor:
Hieronder staat de code van het script (de genoemde "worldtop"). Wie kan me helpen??
ik ben een beginnende PHP-er, maar met behulp van www.php.net kom ik er meestal aardig uit. Nu heb ik echter een probleem waar ik niet uit kom.
Voor een forum waar ik lid van ben, houdt ik wat statistieken bij van een spelletje. Met behulp van de lijst met alle highscores (een plain-text bestand) bereken ik aantallen, gemiddelden enz, en die post ik dan hier.
Gisteren ging de server waarop ik die stats draai echter down, en dat kwam volgens de eigenaar van de server hierdoor:
Ik krijg alleen dus geen foutmeldingen bij het uitvoeren van de scripts, en zie dus niet in wat er fout is, er komt gewoon uit wat eruit moet duren, het duurt alleen even (>30 sec) Dat is echter niet zo erg aangezien het script maar eens in de 2 a 3 dagen wordt gedraait.je php scripts genereerde foutmeldingen:
use of undefined constant aant
use of undefined constant score
use of undefined constant naam
hierdoor liep de error-log snel vol en toen die 2 Gig in beslag nam crashte de boel.
kan je je scripts aanpassen zodat die foutmeldingen verdwijnen? voor het genenereren van de worldtop kreeg ik 75Kb aan foutmeldingen
Hieronder staat de code van het script (de genoemde "worldtop"). Wie kan me helpen??
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
| <?php ////De Berekeningen: //Lees het bestand in: $arr_regels = file ('high.dat'); //Maar een array aan met alle highscores: $kl=0; $wr=0; for($i=0; $i<(count($arr_regels)); $i+=2) { if ($arr_regels[$i] == "-1\r\n") { $kl=1; } if ($kl==0) { $arr_ALL[$wr][naam] = $arr_regels[$i]; $arr_ALL[$wr][score] = $arr_regels[$i+1]; $wr++; } } //bereken het aantal voorkomens wereldwijd $m = 0; for($i=1; $i<(count($arr_ALL)); $i++) { if(in_arr_jor($arr_voorkw, $arr_ALL[$i][naam]) == 0) { $arr_voorkw[$m][naam] = $arr_ALL[$i][naam]; $arr_voorkw[$m][aant] = 1; $m++; } else { $arr_voorkw[geef_index($arr_voorkw, $arr_ALL[$i][naam])][aant]++; } } $arr_voorkw = bubble($arr_voorkw); //// Weergeven: //De top-10 van voorkomend wereldwijd echo '<A NAME="voorkww">'; echo '[SIZE=4]Top 20 aantal voorkomens wereldwijd[/SIZE]<BR><BR>'; echo "[code]"; echo '<PRE>'; echo " R Naam #\n"; for($i=0; $i<20; $i++) { if ($i < 9) { echo spaties(1); } echo ($i+1); echo spaties(1); echo substr($arr_voorkw[$i][naam], 0, (strlen($arr_voorkw[$i][naam])-2)); echo spaties(18 - strlen($arr_voorkw[$i][naam])); if ($arr_voorkw[$i][aant] < 100) { echo spaties(1); } if ($arr_voorkw[$i][aant] < 10) { echo spaties(1); } echo $arr_voorkw[$i][aant]; echo "\n"; } echo '</PRE>'; echo "<BR>[/code]"; //// Hulpfuncties: //print x spaties function spaties($a) { for($i=0; $i<$a; $i++) { $u = $u . " "; } return $u; } //Het bubble-sorten van de 2D-array, op [aant] function bubble($arr) { for($i=0; $i<(count($arr)); $i++) { for($j=0; $j<((count($arr))-$i); $j++) { if($arr[$j][aant] < $arr[($j + 1)][aant]) { $temp = $arr[$j]; $arr[$j] = $arr[($j+1)]; $arr[($j+1)] = $temp; } } } return $arr; } //De index bij een naam zoeken function geef_index($arr, $naam) { for ($i=0;$i<(count($arr));$i++) { if(dedubbel($arr[$i][naam]) == dedubbel($naam)) { return $i; } } } //Checker: komt de naam voor in de array function in_arr_jor($arr, $naam) { $inarr = 0; for($k=0; $k<(count($arr)); $k++) { if(dedubbel($arr[$k][naam]) == dedubbel($naam)) { $inarr = 1; } } return $inarr; } //Maak namen universeel, om dubbelingen te voorkomen //hoe: verwijder spaties, streepjes (-) en maak alles upper //ook voor rina ` verwijderen, voor schoen ! function dedubbel($naam) { return str_replace(array("`", "-", " ", "!"), array("", "", "", ""),strtoupper($naam)); //regel afgebroken om layout te sparen. } //Test of een string in een andere string voorkomt function instring($test, $sub) { for($p=0; $p<(strlen($test)-3); $p++) { if (substr($test, $p, 4) == $sub) { return TRUE; } } } ?> |
Men moet het denken bijbrengen, niet wat al gedacht is. ~C. Gurlitt