Lire un fichier de la fin au debut

Résolu
mouloudikhaled
Messages postés
39
Date d'inscription
vendredi 2 novembre 2007
Statut
Membre
Dernière intervention
28 février 2009
- 20 mars 2008 à 17:15
yoman64
Messages postés
962
Date d'inscription
samedi 19 janvier 2002
Statut
Membre
Dernière intervention
2 août 2010
- 20 mars 2008 à 22:01
Bonjour a tous,
J'ai un projet a faire et j'aimerais savoir si vous pourriez me dire comment lire un fichier non du debut a la fin mais de la fin au debut.
Merci de répondre a ma question

4 réponses

yoman64
Messages postés
962
Date d'inscription
samedi 19 janvier 2002
Statut
Membre
Dernière intervention
2 août 2010
1
20 mars 2008 à 20:48
Salut,
ça dépend de ce que tu entends de la fin au début, si tu parles lignes par lignes ou si tu veux carrément tout inversé....

Pour tout inverser rien de plus simple..
$contenu = strrev(file_get_contents('fichier.txt'));

Pour lire ligne par ligne depuis la fin alors probablement avec fseek tu peux y arriver , sinon tu le charge dans un array et tu l'inverse par exemple:

$contenu = file_get_contents('fichier.txt');
$lignes = explode("\n",$contenu);
$lignes = array_reverse($lignes);

foreach($lignes as $ligne) echo $ligne."\n";

On peut aussi se passé de array_reverse:

$contenu = file_get_contents('fichier.txt');
$lignes = explode("\n",$contenu);

for ((int)$i =0,$nb = count($lignes); $i<$nb;++$i) echo $lignes[$i]."\n";

Peut être une meilleure façon, mais moi je ne la connais pas

-------------------
Vous cherchez un hebergement Php/MySQL Gratuit et sans publicités ??
Et bien c'est la : www.e3b.org  
3
mmaximum
Messages postés
38
Date d'inscription
jeudi 13 mars 2008
Statut
Membre
Dernière intervention
9 décembre 2011
2
20 mars 2008 à 18:04
Tu ouvres ton fichier et tu le met dans une chaine de caractère, puis tu créer une 2èmes chaine de caractère et tu fais une boucle qui inverse qui copie de la fin au début le fichier dans la nouvelle chaine.
(Je ne mais pas de code car je ne connait pas très bien le php, mais je programme dans d'autre langage et c'est le même principe)
0
mouloudikhaled
Messages postés
39
Date d'inscription
vendredi 2 novembre 2007
Statut
Membre
Dernière intervention
28 février 2009

20 mars 2008 à 21:04
Merci yoman64.
Je vais essayer et rendre la réponse
0
yoman64
Messages postés
962
Date d'inscription
samedi 19 janvier 2002
Statut
Membre
Dernière intervention
2 août 2010
1
20 mars 2008 à 22:01
Oups, ça aurait dû être
for ((int)$nb = count($lignes)-1; $nb!==0;--$nb) echo $lignes[$i]."\n";

et non pas
for ((int)$i =0,$nb = count($lignes); $i<$nb;++$i) echo $lignes[$i]."\n";

:-/


-------------------
Vous cherchez un hebergement Php/MySQL Gratuit et sans publicités ??
Et bien c'est la : www.e3b.org
0