problème de lecture d'un fichier texte

problème de lecture d'un fichier texte - PHP - Programmation

Marsh Posté le 22-11-2009 à 00:04:11    

Bonjour,  
 
j'ai fais le tour du net sans succès malheureusement.
 
J'ai besoin d'ouvrir et lire un fichier texte en .txt.
 

Code :
  1. <?php
  2.  $var_fichier = "test.txt"; //ce fichier contient le lien, test.txt est dans le même répertoire
  3.  if (!$fichier = fopen($var_fichier, 'r')) { //ouvre le fichier en mode lecture
  4.   echo "Echec de l\'ouverture du fichier"; //si le ficher ne s'ouvre pas, arrêt du programme
  5.   exit();
  6.  }
  7.  else { //si le ficher s'ouvre, alors on le parcours
  8.   while (!feof($fichier)) {
  9.    echo fgets($fichier); //affichage ligne par ligne
  10.  }
  11.   fclose($fichier); //fermer fichier
  12.  ?>


 
 
Voil c'est ultra basic... mais ça ne fonctionne pas !  
 
L'erreur est la suivante :  
 

Citation :

Warning: fopen(test.txt) [function.fopen]: failed to open stream: No such file or directory in C:\Program Files\EasyPHP5.3.0\www\lecture.php on line 17


 
la ligne 17 corresponde  la ligne  
 

Citation :

if (!$fichier = fopen($var_fichier, 'r'))


 
Je me suis dis que peut être c'est à cause des droits d'accès (comme le CHMOD avec linux), mais sous windows je ne vois pas comment on peut y accéder ...
Précision, je tourne avec easyPHP en local et sous windows.
 
Voilà ! J'espère que quelqu'un peut m'aider.
 
 
 
 
 

Reply

Marsh Posté le 22-11-2009 à 00:04:11   

Reply

Marsh Posté le 22-11-2009 à 00:38:01    

outre les erreurs,  
pour lire le contenu d'un fichier, le plus simple c'est file_get_contents(),
 
si tu veux lire lignes par ligne ton fichier c'est avec la fonction file()

Reply

Marsh Posté le 22-11-2009 à 10:07:42    

c'est exactement pareille avec  
 
 
   if (!$fichier = file($var_fichier)) {
   
    echo "Echec de l\'ouverture du fichier";  
    exit();
   
   }
   
   else {  
     
    $taille=count($fichier);  
    for($i = 0; $i < $taille; $i++) {
     echo $fichier[$i];
    }
 
       
    fclose($fichier);  
     
   }

Reply

Marsh Posté le 22-11-2009 à 10:12:49    

et même ça ne fonctionne pas !!
 
echo file_get_contents($fichier);
 
l'erreur est :  
 
 
Notice: Undefined variable: fichier in C:\Program Files\EasyPHP5.3.0\www\test.php on line 46
 
Warning: file_get_contents() [function.file-get-contents]: Filename cannot be empty in C:\Program Files\EasyPHP5.3.0\www\test.php on line 46
 
pourtant j'ai mis le chemain relatif et aussi j'ai testé avec le chemain absolu ....
 
je pointe vers easyphp et le problème de lecture/ecriture de fichier

Reply

Marsh Posté le 22-11-2009 à 10:26:06    

je viens de découvrir qu'il existe cette fonction en PHP : fileperms  qui renvoie les permissions affectées à un fichier.
 
alors allons y :  
 
  $tmp = fileperms("test.txt" );
  echo $tmp;
 
résultat :  
 
Warning: fileperms() [function.fileperms]: stat failed for championnat.txt in C:\Program Files\EasyPHP5.3.0\www\lecture.php on line 44
 
impossible de mon donner les droits ....  
 
dois-je faire un include de quelque chose ?
 
j'

Reply

Marsh Posté le 22-11-2009 à 10:28:07    

là, c'est clairement un problème de chemin d'accès plutôt que de droits

 


test.txt est dans le meme repertoire que quoi ?
est ce que cette fonction est dans un fichier inclus ( par inclue/require) ?
essaye de donner le chemin complet d'accès à ton fichier ( C: ... )

 

sinon, la méthode file_gets_content est pratique, uniquement pour les petits fichiers ( sinon, tout est stocké en mémoire)


Message édité par flo850 le 22-11-2009 à 10:28:49

---------------

Reply

Marsh Posté le 22-11-2009 à 11:06:56    

dans le www de easy php se trouve :
 
lecture.php, avec le minimum de code, juste pour lire et affiché  
test.txt, avec quelques lignes pour tester
et rien d'autre
 
 
 
allez savoir pourquoi d'un coups ça marche ....
 
 
en tout cas merci des réponse et dsl pour ce poste qui je pense n'aidera pas beaucoup de gens ...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed