У коді відсутній такий режим відкритого файлу, як "wr":
fopen("logs.txt", "wr")
Режими відкриття файлів у PHP http://php.net/manual/en/function.fopen.php такі ж, як у C: http://www.cplusplus.com/reference/cstdio/fopen/
Існують такі основні відкриті режими "r" для читання, "w" для запису та "a" для додавання, і ви не можете їх поєднувати. Ви можете додати інші модифікатори, такі як "+" для оновлення, "b" для двійкових. Новий стандарт C додає новий стандартний підспецифікатор ("x"), підтримуваний PHP, який може бути доданий до будь-якого специфікатора "w" (для формування "wx", "wbx", "w + x" або "w + bx "/" wb + x "). Цей субспецифікатор змушує функцію вийти з ладу, якщо файл існує замість того, щоб перезаписати його.
Крім того, у PHP 5.2.6 додано головний відкритий режим 'c'. Ви не можете поєднувати "c" з "a", "r", "w". 'C' відкриває файл лише для запису. Якщо файл не існує, він створюється. Якщо вона існує, вона не є ні усіченою (на відміну від 'w'), ні виклик цієї функції не працює (як у випадку з 'x'). 'c +' Відкрийте файл для читання та запису; в іншому випадку вона має таку саму поведінку, як "c".
Крім того, і в PHP 7.1.2 додано параметр 'e', який можна комбінувати з іншими режимами. Він встановлює прапор закритого рівня на відкритому дескрипторі файлу. Доступний лише у PHP, зібраному на системах відповідності POSIX.1-2008.
Отже, для завдання, як ви його описали, найкращим режимом відкриття файлів було б "a". Він відкриває файл лише для запису. Він розміщує вказівник на файл у кінці файлу. Якщо файл не існує, він намагається створити його. У цьому режимі fseek () не має ефекту, записи завжди додаються.
Ось що вам потрібно, як уже було зазначено вище:
fopen("logs.txt", "a")