La fonction file() maléfique

Résolu
Radiohead4ever Messages postés 71 Date d'inscription samedi 7 février 2004 Statut Membre Dernière intervention 21 novembre 2006 - 28 août 2006 à 21:17
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 - 29 août 2006 à 13:25
Bon je commence avec le php et j'ai un petit problème concernant la fonction file(). Celle-ci, selon la doncumentation, serait supposé lire ligne par ligne le fichier et stoquer les lignes dans des variables. Un array serait donc tout à fait justifié. C'est ce que j'ai fais :

</head>

titre de la page

<?php

    $list_of_posts   = file("posts.list");

    readfile($list_of_posts[0]);

    readfile($list_of_posts[1]);

    readfile($list_of_posts[2]);

    readfile($list_of_posts[3]);

    echo "$list_of_posts[0]$list_of_posts[1]$list_of_posts[2]$list_of_posts[3]";

?>

</html>


Le fichier posts.list quant à lui se lis comme suit :

20060828.txt
20060829.txt
20060828.txt
20060829.txt


Il y a donc une erreur qui se produit, car effectivement, la fontion file a bel et bien entrer les lignes du fichier posts.list dans l'array mais y a ajouter le petit Carriage Return !! Or, ce petit CR n'est pas présent à la fin des noms des fichiers sur le serveur et le code renvoie une erreur de fichier inexistant (sauf pour la dernier de la liste, puisqu'il n'a évidement pas de CR). Maintenant que vous comprenez bien la situation, d'après vous, comment devrais-je procéder pour arriver à mes fins?

[Black]Radio/Black[Red]Head/Red[Yellow]4/Yellow[Green]Ever/Green

5 réponses

coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 4
28 août 2006 à 21:28
Salut!
Et en utilisant une fonction de type rtrim sur $list_of_posts[0] ?

@++

R@f

www.allpotes.ch: Photos, humour, vidéos, gags, ...
"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
3
Radiohead4ever Messages postés 71 Date d'inscription samedi 7 février 2004 Statut Membre Dernière intervention 21 novembre 2006
28 août 2006 à 21:44
Merci beaucoup !

[Black]Radio/Black[Red]Head/Red[Yellow]4/Yellow[Green]Ever/Green
0
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
28 août 2006 à 22:05
On va faire comme toi (pour te montrer que tu n'as pas tout lu visiblement !) :

"selon la doncumentation"

C'est parti :
"serait supposé lire ligne par ligne le fichier et stoquer les lignes dans des variables. Un array serait donc tout à fait justifié."
Nan, dans 1 variable qui est un tableau. La doc précise à ce sujet :
array file ( string filename [, int use_include_path [, resource context]] )

C'est pas pour rien le "array" ici hein :p

"Il y a donc une erreur qui se produit, car effectivement, la fontion file a bel et bien entrer les lignes du fichier posts.list dans l'array mais y a ajouter le petit Carriage Return !! Or, ce petit CR n'est pas présent à la fin des noms des fichiers sur le serveur et le code renvoie une erreur de fichier inexistant"
En effet, c'est marqué la :
"file() est identique à file_get_contents(), hormis le fait que file() retourne le fichier filename dans un tableau. Chaque élément du tableau correspond à une ligne du fichier, et les retour-chariots sont placés en fin de ligne."

"Maintenant que vous comprenez bien la situation, d'après vous, comment devrais-je procéder pour arriver à mes fins?"
Bah en lisant un peu plus bas dans la doc :
"Note : Chaque élément du tableau résultat contiendra la nouvelle ligne de fin de chaîne. Il faudra donc utiliser rtrim() sur cette valeur pour la supprimer."

Tout simple quand on prend le temps de tout lire hein :)


Donc j'y vois 2 choses, soit tu as parcouru très (trop !) rapidement la doc de PHP, soit tu ne l'as pas lu du tout.
Va savoir ce qui est vrai ;)
0
Radiohead4ever Messages postés 71 Date d'inscription samedi 7 février 2004 Statut Membre Dernière intervention 21 novembre 2006
29 août 2006 à 05:08
Tu as raison FhX, j'ai lu la doc très rapidemment, et lorsque j'ai eu un problème je suis allé tout de suite à l'endroit où l'on m'a toujours bien répondu, avec courtoisie et simplicité. L'altruisme ambiant de ce forum ne serait rien sans ses membres dévoués pour lui donner vie, mais bien sûr, il y a des exceptions.

[Black]Radio/Black[Red]Head/Red[Yellow]4/Yellow[Green]Ever/Green
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
29 août 2006 à 13:25
Au moins comme ca, la fonction file() est présente dans son explication intégrale sur le forum :p

C'est pas plus mal ainsi =)
0
Rejoignez-nous