Besoin aide en PHP,lister un fichier

erreur404 Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -  
kij_82 Messages postés 4089 Date d'inscription   Statut Contributeur Dernière intervention   -
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 4089 Date d'inscription   Statut Contributeur Dernière intervention   857
 
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   Statut Contributeur Dernière intervention   420
 
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 4089 Date d'inscription   Statut Contributeur Dernière intervention   857
 
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