PHP - Retour de la dernière ligne dans un fichier?
Je devine que c'est fgets, mais je ne trouve pas la syntaxe spécifique. Je suis en train de lire (dans une chaîne de je pense est plus facile) la dernière ligne ajoutée dans un fichier journal.
source d'informationauteur waxical | 2009-06-30
Vous devez vous connecter pour publier un commentaire.
Le plus simple naïve solution est simple:
Bien, cela VA charger tout le fichier en mémoire. Peut-être un problème (ou pas). Une meilleure solution est: est-ce
Cela ressemble, c'est ce que vous cherchez:
tekkie.flashbit.net: Queue de fonctionnalités en PHP
Il implémente une fonction qui utilise fseek() avec un indice négatif pour rouler le fichier à partir de la fin. Vous pouvez définir le nombre de lignes que vous voulez être retournés.
Le code est également disponible comme un Résumé de l'information sur GitHub:
C'est mieux, car il ne charge pas le fichier complet en mémoire...
Ensemble YOUR_EOL à votre bon caractère de nouvelle ligne, si vous utilisez la même fin de ligne, comme la ligne par défaut pour les terminaisons de l'OS où le script de votre résidence, vous pouvez utiliser la constante PHP_EOL.
-2
parce que le dernier char peut être\n
Vous devez lire le fichier ligne par ligne et enregistrer la dernière ligne de lecture pour l'obtenir.
Ou si sur unix/linux, vous pourriez envisager d'utiliser la commande shell queue
Ce une habitude de pause pour un 1 ou un 0 de la ligne de fichier.
...Pourquoi viens de lire la dernière ligne?
Si vous voulez lire un fichier ligne par ligne le
file
fonction lit le contenu d'un fichier ligne par ligne et retours chaque ligne comme un élément d'un tableau.De sorte que vous pourriez faire quelque chose de simple comme:
@unique_stephen, votre réponse est erronée. PHP fseek renvoie 0 en cas de succès et -1 en cas d'échec. Stocker le résultat dans $début (sic) et plus tard de l'utiliser dans un filtre pour ftell() n'est pas correct. Si ma réputation étaient plus j'aurais voté vous en bas et à gauche un commentaire. Voici une version modifiée de unique_stephen fonction.
REMARQUE: PHP fseek ne parviennent pas à chercher à la fin des fichiers de plus de PHP_MAX_INT qui est de 32 bits signé, même sur 64 bits binaires.