sbbichette
Messages postés14Date d'inscriptionsamedi 4 janvier 2003StatutMembreDernière intervention17 juillet 2009
-
15 nov. 2007 à 17:07
sbbichette
Messages postés14Date d'inscriptionsamedi 4 janvier 2003StatutMembreDernière intervention17 juillet 2009
-
17 nov. 2007 à 20:41
Bonjours, je debute dans le php et j'aimerais savoir comment faire pour afficher un fichier txt de bas en haut et de haut en bas. Bien sûre ce fichier est aléatoire et le nombre de ligne aussi.
Merci de votre aide.
neigedhiver
Messages postés2480Date d'inscriptionjeudi 30 novembre 2006StatutMembreDernière intervention14 janvier 201119 15 nov. 2007 à 20:51
Salut,
Je suis pas certain d'avoir parfaitement compris la question, mais je vais répondre avec ce que j'en comprends...
Pour simplement afficher un fichier (txt, ou autre) :
echo file_get_contents($file);
où $file correspond au chemin du fichier.
Pour l'afficher en partant du bas (la dernière ligne en premier) :
// On récupère le contenu du fichier sous forme
// de tableau : 1 ligne => 1 élément du tableau
$contenu = file($file);
// On inverse l'ordre
array_reverse($contenu);
// On affiche
foreach ($contenu as $ligne) {
echo $ligne . "\n";
}
Si j'ai mal compris, alors ben... faut expliquer mieux ;)
sbbichette
Messages postés14Date d'inscriptionsamedi 4 janvier 2003StatutMembreDernière intervention17 juillet 2009 15 nov. 2007 à 23:07
Oui mon probkème c'est ça, mais cette solution ne marche pas.
Je pense à autre chose, serait-il possible de le faire directement dans le fichier.
Exemple:
le fichier info.txt contient
joueur1 5000pt
joueur2 9200pt
joueur3 300pt
joueur4 1000pt
joueur5 4000pt
Faire en sorte qu'il puisse ouvrire ce fichier inverser l'ordre ce qui nous donne:
joueur5 4000pt
joueur4 1000pt
joueur3 300pt
joueur2 9200pt
joueur1 5000pt
Et le re-enregistrer sous info.txt.
Merci beaucoup.
Par contre, si tu accèdes aux lignes par leur index ($line[0] etc) forcément, ça ne changera pas, puisque array_reverse, par défaut, conserve l'association des index... Donc l'index 0 devient le dernier élément du tableau.
Mais c'est franchement inutile, puisque
file_put_contents($fichier_file, $lines);
va simplement écrire chaque ligne dans le fichier, dans l'ordre dans lequel elles sont : c'est à dire l'ordre inverse de celui de départ.
Inutile de se compliquer la vie avec des calculs pas possibles alors qu'en trois lignes c'est fait.
Par contre, tu disais au début que tu voulais afficher le résultat du fichier inversé, pas que tu voulais réécrire le fichier. Faudrait savoir.
sbbichette
Messages postés14Date d'inscriptionsamedi 4 janvier 2003StatutMembreDernière intervention17 juillet 2009 17 nov. 2007 à 11:39
Salut,
oui c'est juste la fonction pour afficher qui m'interresse, c'est pour ça que je suis contre donner le code car aprés on se focalise sur le reste et non pas sur le pb de la personne.
Ce n'est pas grave, car grace à toi j'ai trouvé la solution.
Comme tu m'as dis que l'index empeché de mettre dans l'odre que je voulais, j'ai juste modifié la façon de compter:
for($i = $u; $i <= $a ;$i++)
est maintenant c'est parfait!!!
Merci beaucoup, heureusement qu'il y a des personnes comme toi qui se penchent sur les pb des autres.
neigedhiver
Messages postés2480Date d'inscriptionjeudi 30 novembre 2006StatutMembreDernière intervention14 janvier 201119 17 nov. 2007 à 15:24
Si c'est résolu, marque le sujet comme résolu.
Et puis si tu veux que les index ne soient pas modifiés, il suffit de faire :
$lines = array_reverse($lines, false);
Comme ça, la dernière ligne, en devenant la première, a l'index 0.
Et leplus simple, pour parcourir un tableau de la première à la dernière ligne, c'est encore foreach :
foreach ($lines as $line) {
echo $line;
}