[PHP] Lire un fichier txt par la fin
Résolu/Fermé
afrodje
Messages postés
759
Date d'inscription
mardi 13 mars 2007
Statut
Membre
Dernière intervention
22 janvier 2014
-
27 juin 2009 à 14:36
anzoom - 22 oct. 2011 à 17:03
anzoom - 22 oct. 2011 à 17:03
A voir également:
- [PHP] Lire un fichier txt par la fin
- Lire le coran en français pdf - Télécharger - Histoire & Religion
- Lire fichier epub - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier rar - Guide
- Lire fichier bin - Guide
6 réponses
Azer_Ty
Messages postés
104
Date d'inscription
vendredi 31 octobre 2008
Statut
Membre
Dernière intervention
4 juillet 2011
60
28 juin 2009 à 00:47
28 juin 2009 à 00:47
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,
moderno31
Messages postés
870
Date d'inscription
mardi 23 juin 2009
Statut
Membre
Dernière intervention
8 août 2012
92
27 juin 2009 à 15:59
27 juin 2009 à 15:59
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
afrodje
Messages postés
759
Date d'inscription
mardi 13 mars 2007
Statut
Membre
Dernière intervention
22 janvier 2014
168
27 juin 2009 à 18:09
27 juin 2009 à 18:09
Cela ne fonctionne pas, quand j'utilise "a", aucun affichage.
moderno31
Messages postés
870
Date d'inscription
mardi 23 juin 2009
Statut
Membre
Dernière intervention
8 août 2012
92
27 juin 2009 à 20:48
27 juin 2009 à 20:48
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
Azer_Ty
Messages postés
104
Date d'inscription
vendredi 31 octobre 2008
Statut
Membre
Dernière intervention
4 juillet 2011
60
28 juin 2009 à 12:43
28 juin 2009 à 12:43
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,
afrodje
Messages postés
759
Date d'inscription
mardi 13 mars 2007
Statut
Membre
Dernière intervention
22 janvier 2014
168
30 juin 2009 à 09:44
30 juin 2009 à 09:44
Finalement ce code fonctionne :
Merci
<?php $fp = fopen("logs/log.txt","r"); $page = ""; while (!feof($fp)) { $page = fgets($fp, 4096) . $page; $page .= "<br>"; } echo $page; ?>
Merci