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 2
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 2
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
Rejoignez-nous