Il n'y a pas de mode d'ouverture de fichier tel que "wr" dans votre code:
fopen("logs.txt", "wr")
Les modes d'ouverture des fichiers en PHP http://php.net/manual/en/function.fopen.php sont les mêmes qu'en C: http://www.cplusplus.com/reference/cstdio/fopen/
Il existe les principaux modes ouverts suivants "r" pour la lecture, "w" pour l'écriture et "a" pour l'ajout, et vous ne pouvez pas les combiner. Vous pouvez ajouter d'autres modificateurs comme "+" pour la mise à jour, "b" pour le binaire. Le nouveau standard C ajoute un nouveau sous-spécificateur standard ("x"), pris en charge par PHP, qui peut être ajouté à n'importe quel spécificateur "w" (pour former "wx", "wbx", "w + x" ou "w + bx "/" wb + x "). Ce sous-spécificateur force la fonction à échouer si le fichier existe, au lieu de l'écraser.
En plus de cela, dans PHP 5.2.6, le mode d'ouverture principal «c» a été ajouté. Vous ne pouvez pas combiner «c» avec «a», «r», «w». Le «c» ouvre le fichier pour l'écriture uniquement. Si le fichier n'existe pas, il est créé. S'il existe, il n'est ni tronqué (contrairement à «w»), ni l'appel à cette fonction échoue (comme c'est le cas avec «x»). 'c +' Ouvre le fichier pour lecture et écriture; sinon, il a le même comportement que «c».
De plus, et dans PHP 7.1.2, l'option «e» a été ajoutée et peut être combinée avec d'autres modes. Il définit l'indicateur de fermeture à l'exécution sur le descripteur de fichier ouvert. Uniquement disponible en PHP compilé sur les systèmes conformes POSIX.1-2008.
Ainsi, pour la tâche telle que vous l'avez décrite, le meilleur mode d'ouverture de fichier serait «a». Il ouvre le fichier pour l'écriture uniquement. Il place le pointeur de fichier à la fin du fichier. Si le fichier n'existe pas, il tente de le créer. Dans ce mode, fseek () n'a aucun effet, les écritures sont toujours ajoutées.
Voici ce dont vous avez besoin, comme cela a déjà été souligné ci-dessus:
fopen("logs.txt", "a")