Votre question

PHP; afficher des fichiers textes [resolu]

Tags :
  • Echo
  • Programmation
Dernière réponse : dans Programmation
30 Juin 2008 22:55:57

Bonjour à tous,
Je souhaite faire une page php qui répertorie ou affiche des articles sous forme de fichier texte présent dans le dossier courant.
Voici le code
  1. <?php
  2. $file=$_GET['dir'];
  3. if (!is_file($file))
  4. {
  5. if($dh=opendir("."))
  6. {
  7. while($file=readdir($dh))
  8. {
  9. if($file!='article.php' && is_file($file))
  10. {
  11.  
  12. echo("<a class=m href='article.php?dir=$file'>$file</a><br>");
  13. }
  14. }
  15. }
  16.  
  17. }else{
  18. $ouvre2=fopen($file,"r");
  19. while (!feof ($ouvre2))
  20. {
  21. $tampon2 = fgets($ouvre2, 4096);
  22. echo $tampon2;
  23. }
  24. }
  25. fclose($ouvre2);
  26.  
  27. ?>

J'ai un message d'erreur qui est :
Warning: fclose(): supplied argument is not a valid stream resource in /article.php on line 56
C'est la ligne qui correspond a
  1. fclose($ouvre2);

De plus, si je clique sur un lien qui a pour nom le fichier ciblé, celui ci ne s'affiche pas, la page se refraichie juste.

Autres pages sur : php afficher fichiers textes resolu

30 Juin 2008 23:09:43

Je me suis inspiré d'un autre code, alors je n'ai peut être pas compris une fonction...
30 Juin 2008 23:17:14

C'est pourtant pas un code trop compliqué, je ne comprend pas où ça foire...
Contenus similaires
30 Juin 2008 23:28:01

J'ai oublié de préciser que si j'enlève le fclose($ouvre2); il n'y a plus d'erreur, mais dans tout les cas, si je clique sur un lien, ici txt1;txt ou txt2.txt qui sont mes deux fichiers textes, il ne se passe rien, la page se rafraichie juste.
a c 232 L Programmation
1 Juillet 2008 10:59:57

Salut,

tu ouvres le fichier $file, et tu fermes $ouvre2...
1 Juillet 2008 11:09:02

C'est ce que je fais nan ?
Apres pas mal de recherche, je crois que l'erreur se trouve dans la ligne:
  1. $file=$_GET['dir'];
.
En effet, si j'écris :
  1. echo $_GET['dir'];

Le nom de mon texte s'affiche alors que si j'écris:
  1. $file=$_GET['dir'];
  2. echo $file:

Il ne s'affiche pas, il y a peut être un problème avec la version de php, dans l'assignement de la variable! Du coup, je n'ai jamais de valeur pour ma variable $file. Il réaffiche donc toujours la liste !
a c 232 L Programmation
1 Juillet 2008 11:14:05

Oups désolé je me suis trompé.
C'est parce que tu fermes ton fichier après la fin de ta condition. $ouvre2 n'existe que si tu entres dans le else, si tu entres dans le if, il ne va pas exister.
1 Juillet 2008 11:19:23

Si je ferme $file j'ai la meme erreur...
fclose($file);
a c 232 L Programmation
1 Juillet 2008 11:21:03

je sais pas si tu as vu que j'avais édité...

c'est pas $file qu'il faut fermer, c'est ton fclose qu'il faut placer dans le else de ta condition
1 Juillet 2008 14:55:25

Bien vu ! Ca regle tout le probleme... Comme d'hab, petite erreur bête et logique... Merci beaucoup !
1 Juillet 2008 14:59:05

Comment fait-on pour dire que tout est réglé ?
a c 232 L Programmation
1 Juillet 2008 18:28:19

tu édites le premier message du topic avec le bouton et tu ajoutes [Résolu] au titre de ton premier message
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS