[PHP] Lire un fichier txt par la fin
Résolu
afrodje
Messages postés
759
Date d'inscription
Statut
Membre
Dernière intervention
-
anzoom -
anzoom -
Bonjour,
J'arrive à le lire du début vers la fin mais pas l'inverse.
Comment faire l'inverse?
Merci
J'arrive à le lire du début vers la fin mais pas l'inverse.
<?php $fp = fopen("logs/log.txt","r"); $page = ""; while (!feof($fp)) { $page .= fgets($fp, 4096); $page .= "<br>"; } echo $page; ?>
Comment faire l'inverse?
Merci
A voir également:
- [PHP] Lire un fichier txt par la fin
- Lire le coran en français pdf - Télécharger - Histoire & Religion
- Lire un fichier epub - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier bin - Guide
- Fichier rar - Guide
6 réponses
Bonsoir,
Si vous souhaitez seulement le lire pour l'afficher en sens inverse :
Sinon pour le lire en sens inverse voici un script qui est valide et qui affiche les lignes dans le sens inverse :
Bonne soirée,
Si vous souhaitez seulement le lire pour l'afficher en sens inverse :
<?php $fp = fopen("logs/log.txt","r"); $page = ""; while (!feof($fp)) { $page = fgets($fp, 4096) . $page; $page .= "<br>"; } echo $page; ?>
Sinon pour le lire en sens inverse voici un script qui est valide et qui affiche les lignes dans le sens inverse :
<?php $fp = fopen("monFichier.txt","r"); // ouverture en lecture, le pointeur est au début $taille_caract = sizeof('a'); // on stock la taille d'un caractère fseek($fp, -($taille_caract), SEEK_END); // on place le pointeur avant le dernier caractère $page = ""; $ligne = ""; // ftell retourne la position courante du pointeur while(ftell($fp) > 0){ // tant que le pointeur n'est pas au début $caract = fgetc($fp); // on lit un caractère if($caract != "\n"){ // si le caractère n'est pas une fin de ligne $ligne = $caract.$ligne; // on l'ajoute à la ligne }else{ // si la ligne est finie $page .= $ligne."<br />"; // on l'ajoute à la page $ligne = ""; // et on vide la ligne } fseek($fp, -($taille_caract * 2), SEEK_CUR);// on remonte de 2 caractères : celui que l'on vient de lire et celui que l'on va lire } fclose($fp); echo $page; ?>
Bonne soirée,
Hello,
as-tu essayé l'option 'a' ?
http://pwet.fr/man/linux/fonctions_bibliotheques/fopen/
Bon courage
as-tu essayé l'option 'a' ?
http://pwet.fr/man/linux/fonctions_bibliotheques/fopen/
Bon courage
je ne n'y connais pas dans de domaine jamais encore exploré. J'espère que quelqu'un d'autre pourra t'aider.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
Après réflexion le script que j'ai indiqué est incomplet, il manque la lecture du tout premier caractère, voici le version complète :
Bonne journée,
Après réflexion le script que j'ai indiqué est incomplet, il manque la lecture du tout premier caractère, voici le version complète :
<?php $fp = fopen("monFichier.txt","r"); // ouverture en lecture, le pointeur est au début $taille_caract = sizeof('a'); // on stock la taille d'un caractère fseek($fp, -($taille_caract), SEEK_END); // on place le pointeur avant le dernier caractère $page = ""; $ligne = ""; // ftell retourne la position courante du pointeur while(ftell($fp) > 0){ // tant que le pointeur n'est pas au début $caract = fgetc($fp); // on lit un caractère if($caract != "\n"){ // si le caractère n'est pas une fin de ligne $ligne = $caract.$ligne; // on l'ajoute à la ligne }else{ // si la ligne est finie $page .= $ligne."<br />"; // on l'ajoute à la page $ligne = ""; // et on vide la ligne } fseek($fp, -($taille_caract * 2), SEEK_CUR);// on remonte de 2 caractères : celui que l'on vient de lire et celui que l'on va lire } // Lecture du tout premier caractère $caract = fgetc($fp); if($caract != "\n"){ $ligne = $caract.$ligne; } $page .= $ligne."<br />"; fclose($fp); echo $page; ?>
Bonne journée,