Besoin aide en PHP,lister un fichier

Fermé
erreur404 Messages postés 2 Date d'inscription vendredi 1 juin 2007 Statut Membre Dernière intervention 13 juin 2007 - 13 juin 2007 à 07:08
kij_82 Messages postés 4088 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 - 13 juin 2007 à 15:13
voila j'ai un petit script PHP qui doit lister un fichier texte,l'afficher en somme cependant mon script pause certain probleme que je n'arive pas resoudre

voici le script



<?
if (!$fp = fopen("fichier.txt","r")) {
echo "Echec de l'ouverture du fichier";

exit;

}

else {
while(!feof($fp)) {
// On récupère une ligne
$Ligne = fgets($fp,255);

// On affiche la ligne
echo $Ligne;

// On stocke l'ensemble des lignes dans une variable
$Fichier = $Ligne;

}
fclose($fp); // On ferme le fichier
}
echo $Fichier;

?>


il est censé listé le fichier "fichier.txt" mais le souci c'est que le fichier(fichier.txt) et lui meme un script

euh je m'explik pour testé j'ai simplement mis

<? echo bonjour ?>

mais ça ne fonctionne pas...mon script ne liste rien du tout!

par contre si je met juste : echo bonjour (sans les point d'interrigation)

ben ça marche

quelqu'un pourrait t'il m'aider?
A voir également:

3 réponses

kij_82 Messages postés 4088 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
13 juin 2007 à 12:19
La facon dont tu as codé ton truc fais que tu n'enregistre dans ta variable $Fichier uniquement le dernier enregistrement de ta boucle à chaque fois.
Si tu veux tout avoir il faut remplacer :
 $Fichier = $Ligne;


par :
 $Fichier .= $Ligne;


Donc, est ce que par hasard, lorsque tu as fait ton test la première fois, tu n'auais pas serait pas aller à la ligne dans ton fichier après avoir écrit <? echo bonjour ?> ? Si oui, alors le dernier enregistrement était vide, si qui fait qu'il ne t'a rien affiché.
Si lors du deuxieme essai tu n'es pas allé à la ligne dans ton fichier, il t'as écrit la première ligne correctement.

Regarde en premier si ca ne vient pas de ça plutot.
Ensuite corrige ton code et reteste.

Si ca ne marche toujours pas c'est pas normal, à moins que ton fichier soit mal ouvert ou que la fonction fgets n'arrive pas à lire.

Pour cela fais les tests suivants :

 while(!feof($fp)) {
// On récupère une ligne
$Ligne = fgets($fp,255);

// On affiche la ligne
if ( $Ligne == false )
   echo "probleme lors de la lecture";
   break;
else {
  echo $Ligne;
  // On stocke l'ensemble des lignes dans une variable
  $Fichier = $Ligne;
}

} 


Tiens nous au courant.
0
Ohm-WorK Messages postés 1464 Date d'inscription mardi 25 octobre 2005 Statut Contributeur Dernière intervention 29 octobre 2019 420
13 juin 2007 à 12:55
Salut

Tu demande à un script php, d'afficher <? echo 'bonjour'; ?>, donc tu lui demande de rouvrir des tags php, alors qu'il est déjà dans des tags php... pour moi il y a un problème ici...

Si tu veux inclure ton fichier, le plus simple je pense, serai un include('fichier');

Tchuss

Ohm-WorK
0
kij_82 Messages postés 4088 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
13 juin 2007 à 15:13
Ha oui, vu comme ca la question est différente ^^

En fait, si tu veux que ton texte s'affiche correctement (qu'il ne soit pas interprété), il faut que tu ouvre le place dans une DIV comme suit :


<!-- Fonction pour mettre à jour le contenu de la div -->
<script>
function addTexteToDiv ( texte, divLabel ){
   document.getElementById('divLabel').innerHTML = texte;
}
</script>

<!--- DIV d'affichage -->
<DIV id="affichage">
</DIV>

<?
if (!$fp = fopen("fichier.txt","r")) {
echo "<script>addTexteToDiv('affichage','Echec de l'ouverture du fichier');";

exit;

}

else {
while(!feof($fp)) {
// On récupère une ligne
$Ligne = fgets($fp,255);

// On affiche la ligne
echo $Ligne;

// On stocke l'ensemble des lignes dans une variable
$Fichier = $Ligne;

}
fclose($fp); // On ferme le fichier
}

echo "<script>addTexteToDiv('affichage','".$Fichier."')</script>";

?> 


Code non testé mais l'idée est là.
0