Warum funzt "r+" nicht?
sTeFaNp.
- php
0 Tobias K.0 sTeFaNp.0 Tobias K.0 sTeFaNp.
0 norbert =:-)0 sTeFaNp.0 Henryk Plötz
'\*~-:. Hallo Leute .:-~\*'
Mein kleines Newssystem funktioniert super,bis auf das die News immer angehängt werden,nicht oben hingeschrieben werden!
Hier der Code in dem der Fehler liegen muss :
--
smilies();
$datei = fopen("news.dat","r+");
$inhalt = fgets($datei,9999999);
$jetzt = '<div id="1">'.$thema.'</div>
<div id="1">Quelle:</div>
<div id="news"><b>'.$news.'</b></div>
<div id="1">Autor: <b>'.$name.'</b></div><div id="1">
am '.$datum.' um '.$uhrzeit.' </div>';
fwrite($datei,$jetzt);
fclose($datei);
--
was ist da falsch?
Gruß sTeFaNp.
Hallo Stefan,
Mein kleines Newssystem funktioniert super,bis auf das die News immer angehängt werden,nicht oben hingeschrieben werden!
$datei = fopen("news.dat","r+");
du kannst in einer Datei nicht Daten einfach oben dranhängen, wenn du eine Datei mit r+ öffnest, und was reinschreibst, wird der erste Teil der Datei überschrieben (jenachdem, wieviel du eben reinschriebst). Um was vorne an die Datei "dranzuhängen" musst du die ganze Datei in einen String lesen, den neuen Inhalt im array vorne dranhängen und den ganzen String wieder in die Datei schreiben.
Grüße aus Nürnberg
Tobias
Hallo Stefan,
Mein kleines Newssystem funktioniert super,bis auf das die News immer angehängt werden,nicht oben hingeschrieben werden!
$datei = fopen("news.dat","r+");
du kannst in einer Datei nicht Daten einfach oben dranhängen, wenn du eine Datei mit r+ öffnest, und was reinschreibst, wird der erste Teil der Datei überschrieben (jenachdem, wieviel du eben reinschriebst). Um was vorne an die Datei "dranzuhängen" musst du die ganze Datei in einen String lesen, den neuen Inhalt im array vorne dranhängen und den ganzen String wieder in die Datei schreiben.Grüße aus Nürnberg
Tobias
--
Hm,versteh ich nicht ganz wie ich das in einen string lese :((
Kannst mir das erklären oder einfach url zur erklärung von strings sagen?
Wäre nett,lerne Php nämlich erst.
mfg sP.
Hallo Stefan,
Hallo Stefan,
[...]
-> http://afaik.nimmich.org/usenet/faq/zitieren/
Hm,versteh ich nicht ganz wie ich das in einen string lese :((
mit fread() ->http://www.php.net/fread
das "vornedranhängen" geht mit http://www.php.net/language.operators.string
Kannst mir das erklären oder einfach url zur erklärung von strings sagen?
was meinst du mit "erklärung von strings"?
Wäre nett,lerne Php nämlich erst.
dann solltest du mal etwas in der Dokumentation auf http://www.php.net/ stöbern
Grüße aus Nürnberg
Tobias
Danke,werde ich mir durchlesen
mfg sP.
Hallo!
/* Datei einlesen */
$oldstring = implode ('', file('something.txt'));
/* "Vorne" den neuen Eintrag anfügen */
$string = $newstring . "\n" . $oldstring;
/* Kompletten String wieder zurückschreiben */
$fp = fopen("something.txt","w");
fwrite($fp, $string);
fclose($fp);
Adaptierungen bei Bedarf selbst durchführen.
Weitere Infos unter http://www.php.net/manual/de/ref.filesystem.php
Tip: Bei etwas umfangreicheren Dateien würde ich doch auf eine DB ausweichen ;-)
mfg
norbert =:-)
Hallo!
»»
Hallo,
Tip: Bei etwas umfangreicheren Dateien würde ich doch auf eine DB ausweichen ;-)
Hab ich mir auch schon überlegt,aber bei Freespace ist jeder Mb myqsl wertvoll :)
mfg
norbert =:-)
mfg sP.= :))))
Es funzt!
Danke für die genaue Erklärung :)
Moin,
$fp = fopen("something.txt","w");
Solche Spielerein sind etwas heikel da es durchaus möglich ist, dass zwei PHP-Prozesse gleichzeitig laufen. Und wenn der eine Prozess seine Änderung in die Datei schreibt nachdem der andere Prozess die Datei gelesen hat, dann gehen dir manchmal Einträge verloren.
Daher hier immer mit file locking arbeiten: http://www.php.net/manual/de/function.flock.php.
Hallo Henryk!
Daher auch der Hinweis:
Adaptierungen bei Bedarf selbst durchführen.
Gilt auch für allfällige weitere Schwachpunkte meines Vorschlages - den ganzen Quellcode wollte ich dann doch nicht erstellen ;-)
mfg
norbert =:-)