La fonction file() maléfique [Résolu]

Signaler
Messages postés
71
Date d'inscription
samedi 7 février 2004
Statut
Membre
Dernière intervention
21 novembre 2006
-
Messages postés
2350
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
18 avril 2015
-
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

Messages postés
2268
Date d'inscription
mercredi 27 novembre 2002
Statut
Membre
Dernière intervention
13 septembre 2013
3
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???"
Messages postés
71
Date d'inscription
samedi 7 février 2004
Statut
Membre
Dernière intervention
21 novembre 2006

Merci beaucoup !

[Black]Radio/Black[Red]Head/Red[Yellow]4/Yellow[Green]Ever/Green
Messages postés
2350
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
18 avril 2015
3
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 ;)
Messages postés
71
Date d'inscription
samedi 7 février 2004
Statut
Membre
Dernière intervention
21 novembre 2006

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
Messages postés
2350
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
18 avril 2015
3
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 =)