Es gibt keinen solchen Dateiöffnungsmodus wie "wr" in Ihrem Code:
fopen("logs.txt", "wr")
Die Modi zum Öffnen von Dateien in PHP http://php.net/manual/en/function.fopen.php sind dieselben wie in C: http://www.cplusplus.com/reference/cstdio/fopen/
Es gibt die folgenden Hauptöffnungsmodi "r" zum Lesen, "w" zum Schreiben und "a" zum Anhängen, und Sie können sie nicht kombinieren. Sie können andere Modifikatoren wie "+" für die Aktualisierung und "b" für die Binärdatei hinzufügen. Der neue C-Standard fügt einen neuen Standard-Subspezifizierer ("x") hinzu, der von PHP unterstützt wird und an jeden "w" -Spezifizierer angehängt werden kann (um "wx", "wbx", "w + x" oder "w + bx" zu bilden "/" wb + x "). Dieser Subspezifizierer erzwingt, dass die Funktion fehlschlägt, wenn die Datei vorhanden ist, anstatt sie zu überschreiben.
Außerdem wurde in PHP 5.2.6 der Hauptöffnungsmodus 'c' hinzugefügt. Sie können 'c' nicht mit 'a', 'r', 'w' kombinieren. Das 'c' öffnet die Datei nur zum Schreiben. Wenn die Datei nicht vorhanden ist, wird sie erstellt. Wenn es existiert, wird es weder abgeschnitten (im Gegensatz zu 'w'), noch schlägt der Aufruf dieser Funktion fehl (wie dies bei 'x' der Fall ist). 'c +' Öffne die Datei zum Lesen und Schreiben. ansonsten hat es das gleiche Verhalten wie 'c'.
Zusätzlich und in PHP 7.1.2 wurde die Option 'e' hinzugefügt, die mit anderen Modi kombiniert werden kann. Es setzte das Close-on-Exec-Flag im geöffneten Dateideskriptor. Nur in PHP verfügbar, das auf POSIX.1-2008-konformen Systemen kompiliert wurde.
Für die Aufgabe, wie Sie sie beschrieben haben, wäre der beste Modus zum Öffnen von Dateien "a". Es öffnet die Datei nur zum Schreiben. Es platziert den Dateizeiger am Ende der Datei. Wenn die Datei nicht vorhanden ist, wird versucht, sie zu erstellen. In diesem Modus hat fseek () keine Auswirkung, Schreibvorgänge werden immer angehängt.
Folgendes benötigen Sie, wie oben bereits erwähnt:
fopen("logs.txt", "a")