Précédent   Forum des professionnels en informatique > PHP > Langage > Fichiers
Fichiers Forum d'entraide sur les fichiers avec PHP. Avant de poster -> FAQ fichiers et Sources fichiers
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/12/2007, 15h23   #1
Invité de passage
 
Inscription : février 2006
Messages : 73
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 73
Points : 3
Points : 3
Par défaut lire contenu d'un fichier

j'ai fais une page visualisateur.php qui a pour but d'afficher le contenu du fichier phpinfo.txt
le problème c'est que ça n'affiche que la première ligne du fichier et je ne comprend pas pourquoi.
Il doit bien y avoir quelquechose qui ne va pas dans mon code :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<html>
<body>
<h2>visualisateur</h2>
<form method='post' action="visualisateur.php">
<?php
$fic=fopen("rep/phpinfo.txt","r");
while(!feof($fic)){$chaine=fgets($fic,255);}
$c=$chaine;
echo "$c";
fclose($fic);
?>
</form>
</body>
</html>
Piccolo_son est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2007, 15h28   #2
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Avec une boucle telle que :
Code :
while(!feof($fic)){$chaine=fgets($fic,255);}
Seule la dernière doit être affichée.

Code :
1
2
3
4
5
6
$fic = fopen('rep/phpinfo.txt', 'r') or die('Erreur de lecture !');
while (!feof($fic)) {
    $chaine .= fgets($fic, 255);
}
echo $chaine;
fclose($fic);
Ce qui revient à faire :
Code :
echo file_get_contents('rep/phpinfo.txt');
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2007, 15h33   #3
Membre expérimenté
 
Inscription : janvier 2007
Messages : 624
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 624
Points : 557
Points : 557
Bonjour,
feof() retourne TRUE si le pointeur $fic est à la fin du fichier, ou si une erreur survient, sinon, retourne FALSE.
Donc, avec
Code :
while(!feof($fic)){$chaine=fgets($fic,255);}
Il lit la première ligne et comme on n'est pas à la fin du fichier on sort de la boucle.
En plus ta boucle se ferme trop tôt.
Je te conseillerais tout de même d'utiliser la fonction file qui est plus appropriée.
kabkab est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2007, 16h02   #4
Invité de passage
 
Inscription : février 2006
Messages : 73
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 73
Points : 3
Points : 3
merci julp effectivement ça marche avec le point. Par contre j'ai une autre question : quand le contenu de mon fichier phpinfo.txt est simplement du texte, ça marche très bien, par contre quand je mets du php/html dans ce fichier, seul le contenu des echo s'affiche, or, moi je voudrais afficher tous le contenu du fichier, avec les balises html et php.
Piccolo_son est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2007, 16h07   #5
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
C'est parce qu'elles sont interprétées par votre navigateur, non ? Vous pouvez appliquer sur les données lues, la fonction htmlentities ou htmlspecialchars pour les afficher telles quelles.
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2007, 17h49   #6
Invité de passage
 
Inscription : février 2006
Messages : 73
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 73
Points : 3
Points : 3
oui effectivement htmlentities fonctionne très bien
merci beaucoup
Piccolo_son est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h20.


 
 
 
 
Partenaires

Hébergement Web