von languitar |
öhm ja, muss dann so aussehen:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16: | if(isset($_POST['text'])) {
$array = file("log.txt");
$zeit = date("H:i:s");
if (sizeof($array) >= 20) unset($array[0]);
$array[] = "<font color=\"#999999\">[$zeit]</font> <fontolor=\"#000000\"><b>($chatuser)</b> $_POST['text']</font>\n";
$fp = fopen("log.txt", "w");
foreach($array as $line) {
fputs($fp, $line);
}
fclose($fp);
} |
|
von Crash |
Hi,
Es geht, aber wenn in der Datei nur 1 Zeile ist, dann beschreibt er immer nur die 1 Zeile, muss ich da jetzt nen Zähler einbauen? Also wenn in der Datei 20 Zeilen sind macht er das, wenn nicht dann fügt er neue Zeile an?
*Edit* Hab es hinbekommen es funzt, danke dir )) *Edit* |
von languitar |
Wofür ist denn die If-Abfrage eigentlich?? Du willst doch nur immer hinten eine Zeile anhängen und vorne eine löschen, oder???
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17: |
if(isset($_POST['text'])) {
$array = file("log.txt");
$zeit = date("H:i:s");
unset($array[0]);
$array[] = "<font color=\"#999999\">[$zeit]</font> <fontolor=\"#000000\"><b>($chatuser)</b> $_POST['text']</font>\n";
$fp = fopen("log.txt", "w");
foreach($array as $line) {
fputs($fp, $line);
}
fclose($fp);
} |
So sollet es meiner Meinung nach gehen, ist aber nicht getestet. |
von Crash |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18: | <?php
$zeit = date("H:i:s");
if(isset($_POST['text'])) {
$datei = "log.txt";
$fp = file("log.txt");
$hmm = count(file($datei));
if ($hmm >= 20) {
unset($array[0]);
foreach($datei as $line) {
if(key($datei) == 0) {
fwrite($fp, "<font color=\"#999999\">[$zeit]</font> <fontolor=\"#000000\"><b>($chatuser)</b> $text</font>\n");
} else {
fwrite($fp, $line."\n");
}
}
}
}
?> |
Hm, das mit der foreach-Schleife geht nich, aber wie soll ich es anders machen? |
von languitar |
unset($array[0]) |
|