IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Lire le contenu de plusieurs fichiers .txt


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Inscrit en
    Juillet 2008
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 5
    Points : 2
    Points
    2
    Par défaut Lire le contenu de plusieurs fichiers .txt
    Bien le bonjour,

    Je poste ici cars ca fait depuis le début de la semaine que je n'arrive pas à avancer d'un pas (on est mercredi )

    Alors voila:

    On m'a demandé de créer une page php qui va se rendre dans un dossier spécifique (c:/wamp/test/ pour mon cas). Et lire tous les fichiers .txt à la suite et mettre le contenu dans un tableau pour l'afficher.

    Les fichiers textes sont sous forme :serveur08;true;true;false;true;...

    J'ai pensé à lister en premier les fichiers dans ce dossier, Mon script:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php
    $dir = opendir("c:/wamp/test/");
    while($file = readdir($dir)) {
    echo "$file\n";
    }
    closedir($dir);
    ?>
    A ce moment la variable $file contient : ". .. texte.txt text1.txt etc..."

    J'aimerais utiliser cette variable pour lire tout les fichiers qu'elle a enregistré pour les ouvrir et compléter mon tableau.

    Le problème c'est que je ne sais pas comment prendre juste "texte.txt" "texte1.txt" dans cette variable.

    Mon code pour afficher le contenu du .txt dans un tableau :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    <?php
    $ouvre=fopen("texte.txt","r");  // ouverture du fichier
    while (!feof ($ouvre))          // tant que pas en fin de fichier
    	{
     
    $lecture = fgets($ouvre, 4096); // stockage dans $lecture
    $donnee=explode(";",$lecture);  // parsing des données basé sur ";")
     
    $combien=count($donnee)-1; // nbre d'éléments séparés par "*"
    echo "<b>Ce fichier contient ",$combien," données : </b><br><br>";
     
    ?><table border=1 width="100%" ><?php
     
    for ($i=0;$i<=$combien;$i++)
    	{
    echo"<td ALIGN=center>";
    echo $donnee[$i];  // affichage des données	
    echo"</td><td ALIGN=center>";
    	}
     
    	}
    fclose($ouvre);		// fermeture
    ?>
    Comment je pourrais utilisé ma variable pour ouvrir chaque fichier un par un et les afficher dans un tableau?

    Le résultat devrait ressembler à ça (dans un tableau):

    serveur08 true true ...
    serveur54 false true ...
    ... ... ...

    J'espère avoir été assez explicite et pas trop long. Les réponses pourrait aider plusieurs personnes je pense, cars on ne trouve pas de tuto qui explique mon problème, Je vous l'assure j'ai chercher

    En tout cas merci pour votre attention.

  2. #2
    Membre expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Points : 3 344
    Points
    3 344
    Par défaut
    Bonjour,

    $file ne contiens pas ". .. texte.txt text1.txt etc...". En fait, tu fais une boucle sur la liste des inodes (fichiers et répertoires) situés dans ton répertoire. Au premier passage, ta variable vaut '.' (= répertoire courant), au deuxième '..' (= répertoire parent), au troisième 'texte.txt', etc... Tu peux t'en assurer en changeant ton echo "$file\n"; par echo "$file<br />"; par exemple.

    Donc pour ouvrir tes fichiers, dans ta boucle il faut vérifier s'il s'agit bien d'un fichier (is_file) puis l'ouvrir et l'afficher...

  3. #3
    Candidat au Club
    Inscrit en
    Juillet 2008
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Ok, donc j'aurais donc un code comme ceci?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <?php
     
    if(is_file('./test/' .$fichier. '.txt'))
       {
        ...
       }
    else 
       {
        ...
       }
    ?>
    Ce dont je ne suis pas sur pour le code, c'est que je dois mettre mon code qui affichera le tableau après le if?

    Et ci je mets tout ceci dans une boucle chaque fichiers .txt seront traité et ajouté au tableau?

    ps. merci pour la réponse

  4. #4
    Membre expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Points : 3 344
    Points
    3 344
    Par défaut
    Oui, c'est ça.

    Par exemple,e en reprenant ton code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    <?php
    $dirname = "c:/wamp/test/";
    $dir = opendir($dirname);
    while($file = readdir($dir))
    {
        $file =  $dirname.$file;
        if (is_file($file))
        {
            $ouvre = fopen($file, "r");  // ouverture du fichier
            while (!feof ($ouvre))          // tant que pas en fin de fichier
            {
                ...
            }
            fclose($ouvre);		// fermeture
        }
    }
    closedir($dir);
    ?>

  5. #5
    Candidat au Club
    Inscrit en
    Juillet 2008
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Merci pour ton aide

    Dernière petite question et c'est tout bon.

    j'ai juste une erreure dans ce code :

    Parse error: syntax error, unexpected T_IF in C:\wamp\www\inventaire systems\texte1.php on line 7

    la ligne 7 correspond à

    J'ai chercher sur le net mais il me semble que la syntaxe est juste, de plus j'ai bien les bon droits sur les fichiers.

    Dsl, de n'avoir pas trouvé seule la réponse, je débute. Je ne vois vraiment pas le problème sur cette ligne. j'ai tester plusieurs solutions.

  6. #6
    Membre expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Points : 3 344
    Points
    3 344
    Par défaut
    il manque un ; à la ligne d'avant.

  7. #7
    Candidat au Club
    Inscrit en
    Juillet 2008
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Merci beaucoup, c'est nickel

    ps. J'ai un peut honte d'avoir croché sur cette erreur de "débutant" ;

  8. #8
    Candidat au Club
    Inscrit en
    Juillet 2008
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Voila voila j'ai terminé,

    Voici le code final et fonctionnel;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    <?php
    $dirname = "C:/wamp/test/";
    $dir = opendir($dirname);
    ?><table border=1 width="100%" ><?php
    while($file = readdir($dir))
    {
     
       $file =  $dirname.$file;
     
       if(is_file($file))
        {
    	$ouvre=fopen($file,"r");  // ouverture du fichier
    	while (!feof ($ouvre))          // tant que pas en fin de fichier
    		{
    		$lecture = fgets($ouvre, 4096); // stockage dans $lecture
    		$donnee=explode(";",$lecture);  // parsing des données basé sur ";")
    		$combien=count($donnee)-1; // nbre d'éléments séparés par ";"
     
    		for ($i=0;$i<=$combien;$i++)
    			{
    			echo"<td ALIGN=center>";
    			echo $donnee[$i];  // affichage des données
    			echo"<td ALIGN=center>";
    			}
    		}
    	}
    	echo "</tr>";
    }
    closedir($dir);
    ?>
    Le code php vérifie tous les fichier présents dans "C:/wamp/test/", les enregistres dans la variable $file.

    Puis dans ma boucle if, le code affiche le contenu de tous les fichiers dans un tableau.

    Merci à Eusebe pour ton aide

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 19/07/2016, 20h34
  2. Réponses: 3
    Dernier message: 16/12/2010, 18h33
  3. Réponses: 5
    Dernier message: 10/08/2009, 21h48
  4. Lire le contenu d'un fichier *.txt
    Par touf213 dans le forum C++Builder
    Réponses: 3
    Dernier message: 03/07/2007, 15h49
  5. [Débutant] Lire plusieurs fichiers txt dans un répertoire
    Par leneuf dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 03/10/2006, 12h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo