W Twoim kodzie nie ma takiego trybu otwierania plików jak „wr”:
fopen("logs.txt", "wr")
Tryby otwierania plików w PHP http://php.net/manual/en/function.fopen.php są takie same jak w C: http://www.cplusplus.com/reference/cstdio/fopen/
Istnieją następujące główne otwarte tryby „r” do odczytu, „w” do zapisu i „a” do dołączania i nie można ich łączyć. Możesz dodać inne modyfikatory, takie jak „+” dla aktualizacji, „b” dla binarnego. Nowy standard C dodaje nowy standardowy specyfikator („x”), obsługiwany przez PHP, który można dołączyć do dowolnego specyfikatora „w” (aby utworzyć „wx”, „wbx”, „w + x” lub „w + bx „/„ wb + x ”). Ten subspecifier wymusza niepowodzenie funkcji, jeśli plik istnieje, zamiast go nadpisywać.
Poza tym w PHP 5.2.6 dodano główny tryb otwarty „c”. Nie można łączyć „c” z „a”, „r”, „w”. Litera „c” otwiera plik tylko do zapisu. Jeśli plik nie istnieje, zostanie utworzony. Jeśli istnieje, nie jest obcinany (w przeciwieństwie do „w”), ani wywołanie tej funkcji nie kończy się niepowodzeniem (jak w przypadku „x”). „c +” Otwiera plik do czytania i pisania; w przeciwnym razie zachowuje się tak samo jak „c”.
Dodatkowo w PHP 7.1.2 dodano opcję 'e', którą można łączyć z innymi trybami. Ustawia flagę close-on-exec na deskryptorze otwartego pliku. Dostępne tylko w PHP skompilowanym w systemach zgodnych z POSIX.1-2008.
Tak więc dla opisanego zadania najlepszym trybem otwierania plików będzie „a”. Otwiera plik tylko do zapisu. Umieszcza wskaźnik pliku na końcu pliku. Jeśli plik nie istnieje, próbuje go utworzyć. W tym trybie fseek () nie działa, zapisy są zawsze dołączane.
Oto, czego potrzebujesz, jak już wskazano powyżej:
fopen("logs.txt", "a")