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 un fichier situé dans 2 sous dossier...


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2005
    Messages : 139
    Points : 74
    Points
    74
    Par défaut Lire un fichier situé dans 2 sous dossier...
    Bonjour

    J'ai quelques erreurs dont je ne retrouve pas la raison dans mon code. Je doit lire un fichier txt qui est dans 2 sous dossier :

    Details
    Canada
    fichier.txt
    voici mon 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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    $NomPays = $_SESSION['destination'];
    $repertoireDossier = opendir("Details");
    $repertoireTxt = opendir($NomPays);
    $permisTxt = array('txt');
     
    while($dossierPays=readdir($repertoireDossier))
    {	
        while($dossierTxt=readdir($repertoireTxt))
        {	
            $pointTxt = strrpos($dossierTxt, "."); 
            $extensionTxt = substr($dossierTxt, $pointTxt+1); 
            foreach ($permisTxt as $extTxt) 
            { 
               if(stristr($extTxt, $extensionTxt) === FALSE) 
               { 
               }
               else
               { 
    	          $cheminTxt = "Details/".$NomPays."/".$NoCase.".txt";
    	          $fichierTxt = $NoCase.".txt";
    	          if($dossierTxt==$fichierTxt)
    	          {
                    $lecture = fopen($cheminTxt,"r");
                    while(!feof($lecture))
                    {
                         $Infos = fgets($lecture);				                                                                     echo $Infos;
                    }
                    fclose($lecture);
                  }
                } 
             } 
        }
    }
    closedir($repertoireTxt);
    closedir($repertoireDossier);
    j'ai 3 erreurs :

    Warning: opendir(Canada): failed to open dir: Invalid argument
    Warning: readdir(): supplied argument is not a valid Directory resource
    Warning: closedir(): supplied argument is not a valid Directory resource
    Premièrement, est-ce possible de faire 2 readdir + opendir en même temps, si oui, pourquoi j'ai un invalid directory.. pourtant mes noms sont identiques..

    Merci beaucoup de votre temps!

  2. #2
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut Re: Lire un fichier situé dans 2 sous dossier...
    Citation Envoyé par Pleymo
    Bonjour

    J'ai quelques erreurs dont je ne retrouve pas la raison dans mon code. Je doit lire un fichier txt qui est dans 2 sous dossier :
    Details
    Canada
    fichier.txt
    Je ne lit même pas la suite car je ne comprend déjà pas cette phrase
    Comment un fichier peut-être dans deux dossiers différents ? A part avec un raccourci ou lien symbolique, je vois pas du tout...

    Et puis sur l'exemple, Details et Canada sont les dossiers en question ? pourquoi fichier.txt est en dehors de ces dossiers puisqu'il est sensé être dedans
    Bref j'ai pas tout compris ^^

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2005
    Messages : 139
    Points : 74
    Points
    74
    Par défaut
    Pleymo a écrit:
    Bonjour

    J'ai quelques erreurs dont je ne retrouve pas la raison dans mon code. Je doit lire un fichier txt qui est dans 2 sous dossier :
    Citation:
    Details
    Canada
    fichier.txt
    Comment un fichier peut-être dans deux dossiers différents ?
    il nest pas ds 2 dossier en meme temps... c'est un chemin pour aller lire le fichier

    c'est parce que les espaces on pas marché ... sorry j'aurais du ecrire comme cela :

    Details/Canada/fichier.txt
    donc je dois aller lire le fichier.txt qui est situé dans le 2e dossier..

    j'y arrive facilement en lisant 1 fichier qui serai situé dans 1 dossier, mais ds 2, je n'y arrive vraiment pas...

    puis voila mon code si haut...

    (À noter que j'ai une validation qui sert à lire seulement les fichier texte)

    jespere t'avoir fait un peu plus comprendre!!

    merci

  4. #4
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    montre ton code avec un seul repertoire

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2005
    Messages : 139
    Points : 74
    Points
    74
    Par défaut
    voila.. quelques differences avec le premer a quelques lignes pret mais fonctionne parfaitement dans 1 autre page de ce meme site...

    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
    $repertoireTxt = opendir("Resume");
    $permisTxt = array('txt');
     
    while($dossierTxt=readdir($repertoireTxt))
    {	
      $pointTxt = strrpos($dossierTxt, "."); 
      $extensionTxt = substr($dossierTxt, $pointTxt+1); 
      foreach ($permisTxt as $extTxt) 
      { 
         if(stristr($extTxt, $extensionTxt) === FALSE) 
         { 
    	  }
         else
         { 
    	    $cheminTxt = "Resume/".$nom.".txt";
    		 $fichierTxt = $nom.".txt";
    	    if($dossierTxt==$fichierTxt)
    		 {
              $lecture = fopen($cheminTxt,"r");
              while(!feof($lecture))
              {
                $descript = fgets($lecture);
                echo "$descript<br>";
              }
              fclose($lecture);
    		 }
         } 
      } 
    }
    closedir($repertoireTxt);


  6. #6
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    bon, sincerement, je comprend pas ce que tu veux faire.

    A mon avis ton code peut etre fais de manière plus lisible et plus efficace.

    Que veux tu faire exactement ?
    Pourquoi lister les fichiers d'un repertoire ?

    On va reprendre au début

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2005
    Messages : 139
    Points : 74
    Points
    74
    Par défaut
    Rebonjour

    1erement :

    Je compare le fichier portant le nom de mon pays ($fichierTxt) avec ceux lus dans mon dossier ($dossierTxt). Je veux impérativement lire un fichier.txt, donc si j'ai un nom de fichier portant le même nom mais sous un .doc, il le passera et ira lire seulement le .txt

    2ement :

    Je dois lire le fichier.txt qui est situé 2 répertoires plus bas

    Details/Canada/fichier.txt
    Les 2 dossiers ainsi que le fichier texte ci-haut sont situés dans le même répertoire que mon site dans le WWW(easyphp)

    C'est ici mon problème, je n'arrive pas à ouvrir le 2e dossier (Canada) et ainsi lire le fichier qui est situé dedans. Pourtant, avec l'exemple que je vous ai montré avec la lecture dans 1 seul dossier, ca fonctionne parfaitement..

    Est-ce parce que nous ne pouvons pas ouvrir 2 dossier en php?
    Je crois que c'est tout à fait possible de le faire.. mais comment..!?

    Quelles solutions pouvez-vous m'apporter?

    Merci Beaucoup!

  8. #8
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $cheminTxt = "./Details/".$NomPays."/".$NoCase.".txt"; 
    if(file_exists($cheminTxt))
       fopen.....
    else
       echo "le fichier n'existe pas !";
    :

    bon apres ton nocase je sais pas d ou il sort

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2005
    Messages : 139
    Points : 74
    Points
    74
    Par défaut
    j'avoue que je me suis cassé la tête pour rien.. ca fonctionne évidemment aussi parfaitement!!!

    pour ce qui est du $Nocase, et bien ca vient des checkbox coché de mon autre page

    en haut de mon code que je vous ai donné au début ($NomPays =...), j'ai

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    for($x=0;$x<8;$x++)
              {
                if(isset($_GET['case'.$x]))
                {
                  $NoCase = $_GET['case'.$x];
                  echo "<tr><td><b><center>$NoCase</center><b></td>";
    ce qui veut dire en francais que :

    si une case a été cochée, mettre la valeur de mon checkbox dans la variable $NoCase et l'afficher..

    donc..

    quand je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "<td valign='top'><center>$Infos</center></td>";
    ce sont les informations au sujet de mes cases cochées que je veux afficher..

    J'espère que c'est moins flou pour vous..

    Merci

  10. #10
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    penses a mettre

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2005
    Messages : 139
    Points : 74
    Points
    74
    Par défaut
    dsl!

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

Discussions similaires

  1. [Batch] Supprimer des fichiers situés dans des sous dossiers et dossiers
    Par chuspyto dans le forum Scripts/Batch
    Réponses: 17
    Dernier message: 20/11/2019, 19h31
  2. Recherche de fichiers Excel dans des sous-dossiers
    Par IJeromeI dans le forum MATLAB
    Réponses: 2
    Dernier message: 20/01/2014, 17h14
  3. [XL-2003] récupérer valeur d'une cellule, dans plusieurs fichiers placés dans des sous-dossiers
    Par greenfire15 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 07/08/2012, 09h42
  4. [2.x] Etendre un fichier twig dans un sous-dossier de views
    Par jekif dans le forum Symfony
    Réponses: 2
    Dernier message: 22/03/2012, 15h27
  5. Réponses: 5
    Dernier message: 09/10/2008, 14h26

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