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

Bibliothèques et frameworks PHP Discussion :

[SimpleXML] Fichier identique dans sous-dossier diférent.


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Février 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2010
    Messages : 7
    Points : 5
    Points
    5
    Par défaut [SimpleXML] Fichier identique dans sous-dossier diférent.
    Bonjour a tous,

    Je pense que sa doit être simple mais je trouve pas, comment afficher plusieurs fichiers XML ('profil.xml'), présent dans des dossiers différent..

    Quand le script qui va lire le fichier 'profil.xml' est dans le même dossier sa marche... mais quand je fait comme sa... exemple de mon arborescence :

    - fichier : lire_profil.php
    - DIR :membres
    - DIR : logindumembre1
    - DIR : logindumembre2
    - DIR : logindumembre2
    - fichier : profil.xml
    - DIR : logindumembre4
    - fichier : profil.xml
    Je n'arrive pas a lire mon fichier /membres/'logindumembre'/profil.xml

    Pour lister les dossier des membres c'est bon : voir_membres.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
    if ($doc = opendir('membres')){
        echo "Les Membres :<br/>";
        while (false !== ($file = readdir($doc))){
            if ($file != "." && $file != "..") {;
                echo "<a href=\"membres/".$file."\">".$file."</a><br />\n";
            }
        }
    closedir($doc);
    }
    ?>
    Pour visualiser le contenue c'est basique : lire_profil.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php 
    #Ouverture du fichier
    $membre = simplexml_load_file('profil.xml'); 
    #On parcours
    foreach($membre->profil as $profil)
    foreach($membre->compte as $compte) {
        echo 'Login : ',$compte->login.'<br/>';
        echo 'Email : ',$compte->email.'<br/>';
        echo 'Mot de pass : CACHER <br/>';
        echo 'Age : ',$profil->age.'<br/>';
        echo 'Prenom : ',$profil->prenom.'<br/>';
        echo '<p><a href=',$profil->lien.'>Voir plus</a></p><hr/>';
    }
    ?>
    Le XML en question : profil.xml

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?xml version="1.0" encoding="UTF-8" ?>
    <membre>
            <compte>
                    <login>Bobi</login>
                    <mdp>bobob1</mdp>
                    <email>bobo@bo.bo</email>
            </compte>
            <profil>
                    <prenom>Bob</prenom>
                    <age>25/02/1982</age>
            </profil>
    </membre>
    Donc la question est, comme fait on pour que simplexml_load_file ouvre profil.xml dans plusieurs sous-dossier ?

    Merci

  2. #2
    Membre émérite
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Points : 2 446
    Points
    2 446
    Par défaut
    question préliminaire: tu a tout créé sous forme de fichier sans emballer dans des fonctions?
    ça c'est pas pratique. ça marque aussi mais rajouter des includes c'est moins performant à mon avis qu'appeler une fonction. ce n'est que mon avis nullement fondé.

    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
    function voir_membre() {
    if ($doc = opendir('membres')){
        echo "Les Membres :<br/>";
        while (false !== ($file = readdir($doc))){
            if ($file != "." && $file != "..") {;
                echo "<a href=\"membres/".$file."\">".$file."</a><br />\n";
            }
        }
    closedir($doc);
    }
    }
     
     
     
    function lire_profil($chemin='profil.xml'){
     
    $membre = simplexml_load_file($chemin); 
    #On parcours
    foreach($membre->profil as $profil)
    {
    foreach($membre->compte as $compte) 
    {
        echo 'Login : ',$compte->login.'<br/>';
        echo 'Email : ',$compte->email.'<br/>';
        echo 'Mot de pass : CACHER <br/>';
        echo 'Age : ',$profil->age.'<br/>';
        echo 'Prenom : ',$profil->prenom.'<br/>';
        echo '<p><a href=',$profil->lien.'>Voir plus</a></p><hr/>';
    }
    }
    }
    autre question, est ce que tu est sur que ta fonction lire_profil() est codée correctement ? à mon avis c'est non, ça marche peut être mais ya un non sens.


    bon avec mon systeme, l'arboréscence étant connues, en théorie on peut faire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    //echo getcwd();
    $liste=glob("membres/*/profil.xml");
    // var_dump($liste);
    foreach($liste as $chemin ){
     lire_profil($chemin);
    }
    je dis en théorie parce que je manipule pas très souvent les masques de glob(), décommente si ça fonctionne pas.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Février 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2010
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    Salut, merci pour ta réponse

    C'est vrai que avec les fonction sa facilite la vie, sa marche parfaitement bien

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    include ("fonction.php");
     
    //echo getcwd();
    $liste=glob("membres/*/profil.xml");
    //var_dump($liste);
    foreach($liste as $chemin ){
     lire_profil($chemin);
    }
    ?>
    Résultat :

    L'affichage du contenue des profil.xml de chaque dossier membre

    Prochaine étapes :
    1 - Panel de gestion des fiche membres (admin/membres)
    2 - Connexion sécurisé du membre (login/mdp)

    Le tout sans bdd

    Merci a toi et bonne soirée, Je reviendrai surement

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

Discussions similaires

  1. Gawk et traitement de fichiers dans sous-dossiers
    Par thisistheend dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 18/07/2011, 09h40
  2. Réponses: 9
    Dernier message: 13/05/2011, 06h53
  3. [XL-2007] recherche fichiers dans sous-dossier
    Par casefayere dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 16/03/2010, 09h19
  4. Réponses: 1
    Dernier message: 12/03/2009, 16h37
  5. [SimpleXML] pb avec simplexml_load_file dans sous dossier
    Par astrolane dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 31/08/2007, 14h51

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