Erstellen oder schreiben / fügen Sie eine Textdatei an
Ich habe eine website, die jedes mal, wenn ein Benutzer an-oder Abmeldung, Speichere ich es in eine Textdatei.
mein code funktioniert nicht in den Anhängen die Daten oder erstellt eine text-Datei, wenn nicht vorhanden.. hier ist der Beispielcode
$myfile = fopen("logs.txt", "wr") or die("Unable to open file!");
$txt = "user id date";
fwrite($myfile, $txt);
fclose($myfile);
aber es scheint nicht Anhängen zur nächsten Zeile, nachdem ich es wieder öffnen.
auch. Ich denke, es wäre auch ein Fehler in einer situation wie der was passiert, wenn 2 Benutzer-login auf der gleichen Zeit wäre es für das öffnen der text-Datei und speichern Sie es nach?
InformationsquelleAutor der Frage Jerahmeel Acebuche | 2014-07-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
Probieren Sie etwas wie dieses:
InformationsquelleAutor der Antwort SpencerX
Verwenden Sie die
a
- Modus. Es steht fürappend
.InformationsquelleAutor der Antwort Valentin Mercier
Können Sie es tun OO Weg, nur eine alternative und flexible:
Dann verwenden Sie es wie diese .. sagen wir, Sie haben
user_name
in einer session gespeichert (halb-pseudo-code):Überprüfen Sie Ihre log mit:
Ergebnis ist, wie:
github.com/thielicious/Logger
InformationsquelleAutor der Antwort Thielicious
Gibt es keine solche Datei, öffnen Sie Modus als "wr" in Ihrem code:
Datei öffnen-Modi, die in PHP http://php.net/manual/en/function.fopen.php ist die gleiche wie in C: http://www.cplusplus.com/reference/cstdio/fopen/
Gibt es folgende Haupt-öffnen-Modi "r" für Lesen, "w" für schreiben und "a" (für append), und Sie können Sie kombinieren. Sie können hinzufügen, andere Modifikatoren wie "+" für das update "b" für Binär. Der neue C-standard bringt eine neue standard-subspecifier ("x"), unterstützt durch PHP, kann angehängt werden, um keine "w" - Bezeichner (in form von "wx", "wbx", "w+ "x" oder "w+bx"/"wb+x"). Diese subspecifier Kräfte die Funktion schlägt fehl, wenn die Datei existiert, wird Sie überschrieben.
Außerdem in PHP 5.2.6, " c " Haupt-öffnen-Modus wurde Hinzugefügt. Sie können nicht kombinieren 'c' mit a', 'r', 'w'. Die 'c' - öffnet die Datei nur zum schreiben. Wenn die Datei nicht existiert, wird er erstellt. Wenn es vorhanden ist, ist es weder abgeschnitten (im Gegensatz zu 'w'), noch der Aufruf dieser Funktion fehlschlägt (wie ist der Fall mit 'x'). 'c+' Öffnet die Datei zum Lesen und schreiben; ansonsten ist das Verhalten gleich wie bei 'c'.
Außerdem, und das ist in PHP 7.1.2 der 'e' - option wurde Hinzugefügt, die kombiniert werden können mit anderen Modi. Es setzen close-on-exec-flag auf der sich öffnenden Datei-Deskriptor. Nur in PHP kompiliert auf POSIX.1-2008-konforme Systeme.
So, für die Aufgabe, wie Sie Sie beschrieben haben, die beste Datei-öffnen-Modus wäre 'eine'. Es öffnet die Datei nur zum schreiben. Es legt die Datei-Zeiger am Ende der Datei. Wenn die Datei nicht existiert, versucht es, um es zu schaffen. In diesem Modus, fseek() hat keine Wirkung, schreibt immer angefügt.
Hier ist was Sie brauchen, wie bereits oben angemerkt:
InformationsquelleAutor der Antwort Maxim Masiutin
Versuchen, diesen code:
Verwende ich immer so, und es funktioniert...
InformationsquelleAutor der Antwort Rwakos
In Codeigniterdie Sie verwenden können, FILE_APPEND Methode
Dieses Protokoll kann erstellt werden, und fügen Sie die Daten in der täglichen basis.
InformationsquelleAutor der Antwort Anandan K