| 1. Zeile überschreiben |
Crash
Otto-Normal-Poster
Beiträge: 74
|
Hi,
Wie kann ich es machen, wenn eine Datei 20 Zeilen hat, dass die 1 dann überschrieben wird? So weit bin ich:
1:
2:
3:
4:
5:
6:
7:
8: | <?php
$datei = "log.txt";
$hmm = count(file($datei));
if ($text != "") {
if ($hmm == 20) {
$datei2=fopen("log.txt",a);
?> |
Da weiß ich nicht wie ich das mit den schreiben mach ...
?>
|
|  Profil
Editieren
Zitieren
|
chip
Quasselstrippe
Beiträge: 391
|
Also, alle Zeilen in ein Array einlesen und dann das erste Array-Element ändern/überschreiben. Du zählst ja in Zeile 3 die Anzahl der Array-Elemente. Du musst aber auf ein bestimmtes Element (hier das erste) im Array $hmm zugreifen und das ändern und dann alles wieder in die Datei schreiben.
Also
1:
2:
3:
4:
5:
6:
7: | <?php
$fp = fopen("log.txt","r+")
$hmm = file($fp);
$hmm[0] = "Neuer Text";
fwrite($fp,$hmm);
fclose($fp):
?> |
---

Diese Nachricht wurde geändert von: chip |
|  Profil
Website
Editieren
Zitieren
|
Crash
Otto-Normal-Poster
Beiträge: 74
|
Hi,
Wenn ich das so schreib:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19: | <?php
$datei = "log.txt";
$hmm = count(file($datei));
include("inc\Smilies.inc.php");
$zeit = date("H:i:s");
if ($tet == 12) {
if ($hmm >= 20) {
$fp = fopen("log.txt","r+");
$hmm = file("$fp");
$hmm[1] = "$text";
fwrite($fp,$hmm);
fclose($fp);
} else {
$datei=fopen("log.txt",a);
fwrite($datei, "<font color=\"#999999\">[$zeit]</font> <font color=\"#000000\"><b>($chatuser)</b> $text</font>"."\n");
fclose($datei);
}
}
?> |
Kommt der Fehler:
Warning: file(Resource id #4): failed to open stream: No such file or directory in E:\minixampp\minixampp\htdocs\Chat\eingabe2.php on line 30
Aber was ist falsch?
Diese Nachricht wurde geändert von: Crash |
|  Profil
Editieren
Zitieren
|
languitar
Foren-Team
Beiträge: 2795
|
Welche Zeile ist den Zeile 30 hier?
---
Take a look here!
Lichtblick - Einblick - Ausblick
|
|  Profil
E-Mail
Website
Editieren
Zitieren
|
Crash
Otto-Normal-Poster
Beiträge: 74
|
$hmm = file("$fp");
Das ist Zeile 30..
|
|  Profil
Editieren
Zitieren
|
languitar
Foren-Team
Beiträge: 2795
|
fü file() braucht man keinen filestream. Eifnach den Dateinamen da rein -> file("log.txt")
---
Take a look here!
Lichtblick - Einblick - Ausblick
|
|  Profil
E-Mail
Website
Editieren
Zitieren
|
Crash
Otto-Normal-Poster
Beiträge: 74
|
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19: | <?php
$datei = "log.txt";
$hmm = count(file($datei));
include("inc\Smilies.inc.php");
$zeit = date("H:i:s");
if ($tet == 12) {
if ($hmm >= 20) {
$fp = fopen("log.txt","r+");
$hmm = file("log.txt");
$hmm[1] = "$text";
fwrite($fp,$hmm);
fclose($fp);
} else {
$datei=fopen("log.txt",a);
fwrite($datei, "<font color=\"#999999\">[$zeit]</font> <font color=\"#000000\"><b>($chatuser)</b> $text</font>"."\n");
fclose($datei);
}
}
?> |
So geht es aber nicht, da macht er aus <h1>W Array 
|
|  Profil
Editieren
Zitieren
|
languitar
Foren-Team
Beiträge: 2795
|
du hast in $datei dann auch ein array, dass du zeilenweise wieder in die Datei schreiben musst.
1:
2:
3:
4:
5:
6:
7:
8:
9:
10: | $datei = file("log.txt");
$fp = fopen("log.txt", w);
foreach($datei as $key => $line) {
if($key == 0) {
fwrite($fp, "<font color=\"#999999\">[$zeit]</font> <fontolor=\"#000000\"><b>($chatuser)</b> $text</font>\n");
} else {
fwrite($fp, $line."\n");
}
} |
---
Take a look here!
Lichtblick - Einblick - Ausblick
|
|  Profil
E-Mail
Website
Editieren
Zitieren
|
Crash
Otto-Normal-Poster
Beiträge: 74
|
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14: | <?php
$zeit = date("H:i:s");
if ($tet == 12) {
$datei = file("log.txt");
$fp = fopen("log.txt", w);
foreach($datei as $key => $line) {
if($key == 0) {
fwrite($fp, "<font color=\"#999999\">[$zeit]</font> <fontolor=\"#000000\"><b>($chatuser)</b> $text</font>\n");
} else {
fwrite($fp, $line."\n");
}
}
}
?> |
Dann macht er immernoch aus <h1>W Array und schreibt es nicht in die Datei 
|
|  Profil
Editieren
Zitieren
|
languitar
Foren-Team
Beiträge: 2795
|
kann eigentlich nicht sein...
was steht genau in der Datei?
---
Take a look here!
Lichtblick - Einblick - Ausblick
|
|  Profil
E-Mail
Website
Editieren
Zitieren
|
Crash
Otto-Normal-Poster
Beiträge: 74
|
in der Datei steht:
<h1>Willkommen im Fun-Chat!</h1>
<font color="#999999">[11:58:28]</font> <font color="#000000"><b>(Admin)</b> so</font>
<font color="#999999">[11:58:32]</font> <font color="#000000"><b>(Admin)</b> 2</font>
<font color="#999999">[11:58:35]</font> <font color="#000000"><b>(Admin)</b> 3</font>
<font color="#999999">[11:58:37]</font> <font color="#000000"><b>(Admin)</b> 4</font>
<font color="#999999">[11:58:40]</font> <font color="#000000"><b>(Admin)</b> 5</font>
<font color="#999999">[11:58:42]</font> <font color="#000000"><b>(Admin)</b> 6</font>
<font color="#999999">[11:58:44]</font> <font color="#000000"><b>(Admin)</b> 7</font>
<font color="#999999">[11:58:46]</font> <font color="#000000"><b>(Admin)</b> 8</font>
<font color="#999999">[11:58:48]</font> <font color="#000000"><b>(Admin)</b> 9</font>
<font color="#999999">[11:58:51]</font> <font color="#000000"><b>(Admin)</b> 0</font>
<font color="#999999">[11:58:54]</font> <font color="#000000"><b>(Admin)</b> 11</font>
<font color="#999999">[11:58:57]</font> <font color="#000000"><b>(Admin)</b> 12</font>
<font color="#999999">[11:59:01]</font> <font color="#000000"><b>(Admin)</b> 13</font>
<font color="#999999">[11:59:03]</font> <font color="#000000"><b>(Admin)</b> 14</font>
Dann schreib ich immer irgendwas damit die 20 Zeilen voll werden und dann:
Arrayillkommen im Fun-Chat!</h1>
<font color="#999999">[11:58:28]</font> <font color="#000000"><b>(Admin)</b> so</font>
<font color="#999999">[11:58:32]</font> <font color="#000000"><b>(Admin)</b> 2</font>
<font color="#999999">[11:58:35]</font> <font color="#000000"><b>(Admin)</b> 3</font>
<font color="#999999">[11:58:37]</font> <font color="#000000"><b>(Admin)</b> 4</font>
<font color="#999999">[11:58:40]</font> <font color="#000000"><b>(Admin)</b> 5</font>
<font color="#999999">[11:58:42]</font> <font color="#000000"><b>(Admin)</b> 6</font>
<font color="#999999">[11:58:44]</font> <font color="#000000"><b>(Admin)</b> 7</font>
<font color="#999999">[11:58:46]</font> <font color="#000000"><b>(Admin)</b> 8</font>
<font color="#999999">[11:58:48]</font> <font color="#000000"><b>(Admin)</b> 9</font>
<font color="#999999">[11:58:51]</font> <font color="#000000"><b>(Admin)</b> 0</font>
<font color="#999999">[11:58:54]</font> <font color="#000000"><b>(Admin)</b> 11</font>
<font color="#999999">[11:58:57]</font> <font color="#000000"><b>(Admin)</b> 12</font>
<font color="#999999">[11:59:01]</font> <font color="#000000"><b>(Admin)</b> 13</font>
<font color="#999999">[11:59:03]</font> <font color="#000000"><b>(Admin)</b> 14</font>
<font color="#999999">[15:05:13]</font> <font color="#000000"><b>(Admin)</b> test1</font>
<font color="#999999">[15:05:15]</font> <font color="#000000"><b>(Admin)</b> test2</font>
<font color="#999999">[15:05:19]</font> <font color="#000000"><b>(Admin)</b> test3</font>
<font color="#999999">[15:05:21]</font> <font color="#000000"><b>(Admin)</b> test4</font>
<font color="#999999">[15:05:25]</font> <font color="#000000"><b>(Admin)</b> test5</font>
:/
|
|  Profil
Editieren
Zitieren
|
languitar
Foren-Team
Beiträge: 2795
|
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14: | <?php
$zeit = date("H:i:s");
if ($tet == 12) {
$datei = file("log.txt");
$fp = fopen("log.txt", w);
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");
}
}
}
?> |
probier mal so
---
Take a look here!
Lichtblick - Einblick - Ausblick
Diese Nachricht wurde geändert von: languitar |
|  Profil
E-Mail
Website
Editieren
Zitieren
|
Crash
Otto-Normal-Poster
Beiträge: 74
|
hmmmm, das geht nich, aber ich glaub langsam ich mach da was falsch. Also ich hab den Code in der eingabe.php.. Man gibt den Text ein und wenn man auf den Button (oder enter) drückt setzt er $tet auf 12 und weiter unten prüft er ob $tet auf 12 ist und wenn ja dann den Code von hier..
|
|  Profil
Editieren
Zitieren
|
languitar
Foren-Team
Beiträge: 2795
|
da ist wohl was falsch ;)
Übermittelst du Variablen? Dann kannst du eifnach gucken, ob die gesetzt sind isset() Wenn ja, wird halt der Code zum Schreiben ausgeführt.
---
Take a look here!
Lichtblick - Einblick - Ausblick
|
|  Profil
E-Mail
Website
Editieren
Zitieren
|
Crash
Otto-Normal-Poster
Beiträge: 74
|
hmm nee das passiert alles in einer datei, aber kann ich es so machen: Das er die Variable an einer anderen Datei sendet, und dort dann prüft ob es die 20 Zeile ist, wenn ja dann überschreibt er die erste oder wenn nicht dann hängt er den Text an?
|
|  Profil
Editieren
Zitieren
|