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

EDI, CMS, Outils, Scripts et API PHP Discussion :

[PHP] - Listage de dossier chemin relatif ou absolu


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut [PHP] - Listage de dossier chemin relatif ou absolu
    Bonjour, j'ai ce script pour lister les dossier dans le dossier courant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php 
     
      $directories = glob("*",GLOB_ONLYDIR); 
      foreach ($directories as $dir) 
       { 
          echo '<a href="'.$dir.'/index.php">'.$dir.'</a> <br>'; 
       } 
     
    ?>
    Mais si je met un chemin relatif ou absolu, ca ne fonctionne pas:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php 
     
      $directories = glob("dossier1/dossier2/*",GLOB_ONLYDIR); 
      foreach ($directories as $dir) 
       { 
          echo '<a href="'.$dir.'/index.php">'.$dir.'</a> <br>'; 
       } 
     
    ?>
    Que puis-je faire ?

  2. #2
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    un chdir.

  3. #3
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    Merci

    Mais si je comprend bien c'est pour changer le répertoire courant ?

    Il n'y a pas moyen de faire autrement ?

  4. #4
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    non, glob regarde dans le répertoire courant.
    Pour remettre le repertoire courant après usage, utilise getcwd.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $cwd = getcwd();
    chdir('C:/');
     
    foreach (glob('*') as $filename) var_dump($filename);
     
    chdir($cwd);
     
    foreach (glob('*') as $filename) var_dump($filename);

  5. #5
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    J'ai donc modifier comme suit:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
      $directories_ =  chdir('http://www.lunnatick.fr/'); 
      foreach ($directories_ as $dir_) 
       { 
          echo '<a href="'.$dir_.'/index.php">'.$dir_.'</a> <br>'; 
       } 
       $cwd = getcwd();
       chdir($cwd);
    Ce qui me renvoi cette erreur:

    Warning: chdir() [function.chdir]: No such file or directory (errno 2) in /homez.302/lunnatic/www/mod_pg_gal_som.php on line 121

    Warning: Invalid argument supplied for foreach() in /homez.302/lunnatic/www/mod_pg_gal_som.php on line 122

  6. #6
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    si tu trouve un shell qui supporte CD http://... il faut m'appeller

    chdir ne fonctionne qu'avec des répertoire locaux, le support du wrapper http n'y est évidement pas présent.

    De plus
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $cwd = getcwd();
    chdir($cwd);
    cette opération ne sert à rien vu que tu as déja changé le répertoire courant plus haut donc la valeur de getcwd à déjà changé.

  7. #7
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    Donc rien de supporte "http://" ?

  8. #8
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    Pour lister un répertoire distant avec HTTP ? Je vois pas bien comment faire sinon parser la page de listing d'Apache, ce qui est impossible si l'accès est protégé.

  9. #9
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    Bon ben je vais faire en relatif.

    Mais a part ça, pourrais tu me dire comment exclure des noms de dossier du listage ?

  10. #10
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    avec la négation de in_array.

  11. #11
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    Merci encore, mais comme je ne pratique que très peut le php depuis un bon moment, je ne comprend pas le code du lien, pourrais-tu me donner un exemple adapter a mon code ?

  12. #12
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php
    $exclude = array('.','..','fichier.php');
    foreach (glob('*.php') as $script) {
      if (in_array($script, $exclude))
        continue;
      echo $script;
    }

  13. #13
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    Merci encore


    Donc j'ai ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
        $exclude = array('imgs');
      $directories = glob("*",GLOB_ONLYDIR); 
      foreach ($directories as $dir) 
       { 
         if (in_array($dir, $exclude))
          $dir_2 = str_replace ( "_" , " " , $dir ); 
          echo '<a href="'.$dir.'/index.php">'.$dir_2.'</a> <br>'; 
         } 
       ?>
    Mais cela ne fonctionne pas correctement

  14. #14
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    ppuuuff j'avais zaper le "continue;", maintenant c'se ok merci encore

  15. #15
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    Bonjour, me revoilà sur ce tropic, cela fait un moment que je n'ai pas toucher php, et la j'ai ce 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
    <?php 
     
    $cwd = getcwd();
     
    chdir('imgs/Ma_Selection/');
     
    $directories = glob("*.jpg");
     
    chdir($cwd);
     
    foreach ($directories as $dir) 
    { 
     
    		 echo '<a href="'.$dir.'" rel="lightbox[roadtrip]"><img src="'.$dir.'"  height="250" border="1" style="border-color:#000000"></a> &nbsp;'; 
    } 
    ?>

    Mais ce ne marche pas, que dois-je faire ?

  16. #16
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 104
    Points : 4 454
    Points
    4 454
    Par défaut
    Citation Envoyé par koKoTis Voir le message
    Mais ce ne marche pas, que dois-je faire ?
    J'ai jamais vu php marcher, il faut sans doute lui greffer 2 jambes.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $directories = glob(getcwd()."/imgs/Ma_Selection/*.jpg");
    // ou
    $directories = glob(__DIR__."/imgs/Ma_Selection/*.jpg");
    // ou
    $directories = glob(__DIR__."/../imgs/Ma_Selection/*.jpg");
    // ou 976 autres :(
    Mais comme tu ne précise pas ou est placé ton fichier php par rapport a ton dossier images, on ne risque pas de t'aider et on oublie les chdir(...)
    $moi= ( !== ) ? : ;

  17. #17
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    Citation Envoyé par papajoker Voir le message
    J'ai jamais vu php marcher, il faut sans doute lui greffer 2 jambes.
    lol


    Donc j'ai ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php 
     
    $directories = glob(__DIR__."/imgs/Ma_Selection/*.jpg");
     
    foreach ($directories as $dir) 
    { 
     
    		 echo '<a href="'.$dir.'" rel="lightbox[roadtrip]"><img src="'.$dir.'"  height="250" border="1" style="border-color:#000000"></a> &nbsp;'; 
    } 
    ?>
    Mais ca ne fonctionne toujours pas

  18. #18
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 104
    Points : 4 454
    Points
    4 454
    Par défaut
    ligne 4 fait un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    echo __DIR__."/imgs/Ma_Selection/";
    echo realpath( __DIR__."/imgs/Ma_Selection/" );
    je t'ai dit, cela dépend ou ce trouve ton script php par rapport a ton dossier imgs, je suis pas devin.
    $moi= ( !== ) ? : ;

  19. #19
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    le fichier PHP se trouve juste avant le dossier "imgs"

  20. #20
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    ah, ton echo me donne: "/homez.302/lunnatic/www "

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [RegEx] Chemin relatif en absolu
    Par jmjmjm dans le forum Langage
    Réponses: 5
    Dernier message: 17/05/2011, 02h01
  2. PHP, gestion de fichier : chemin relatif, url, etc..
    Par Tonyryu dans le forum Langage
    Réponses: 6
    Dernier message: 24/04/2009, 09h29
  3. Lire un fichier en chemin relatif ou absolu
    Par batataw dans le forum Tomcat et TomEE
    Réponses: 1
    Dernier message: 11/10/2007, 16h51
  4. Chemin Relatif et Absolu
    Par Z3c33 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 31/05/2007, 23h50
  5. [access2002] [chemin Relatif Et Absolu]
    Par louroulou dans le forum Access
    Réponses: 1
    Dernier message: 02/06/2006, 14h39

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