[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,