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 :

Ouverture de dossier avec opendir


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 497
    Billets dans le blog
    1
    Par défaut Ouverture de dossier avec opendir
    Bonjour,

    je voudrais ouvrir un dossier (pour en afficher les fichiers). Je travaille en local (Wampserver). J'ai essayé les slashes et les anti-slashes comme séparateur de dossier (je suis sous Windows10) et mis ou enlevé un séparateur en fin de chaîne. J'ai aussi essayé http://localhost/ en début de chaîne ou rien. Rien n'y fait. Il me dit qu'il ne peut pas ouvrir le dossier (qui existe bien).

    Dernier essai :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    include(dirname(__DIR__).DIRECTORY_SEPARATOR."config".DIRECTORY_SEPARATOR."config.php");
    $adresse = "/".PROJECT_NAME."/"."methodes/"; //Adresse du dossier.
    $dossier = opendir($adresse); //Ouverture du dossier.

    avec
    if (!defined('PROJECT_NAME')) define('PROJECT_NAME', 'ticket');
    Warning: opendir(/ticket/methodes/,/ticket/methodes/): Le chemin d�acc�s sp�cifi� est introuvable. (code: 3) in C:\wamp64\www\ticket\methodes\lister_rep.php on line 5
    Où est l'erreur ?

  2. #2
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 497
    Billets dans le blog
    1
    Par défaut
    J'ai fait l'essai suivant :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $dossier = opendir(realpath($adresse)); //Ouverture du dossier. 
    var_dump($dossier);
    je n'ai plus le message d'erreur, mais le var_dump retourne false...

  3. #3
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 497
    Billets dans le blog
    1
    Par défaut
    J'ai rajouté un test is_dir et c'est pas un dir...C'est évidemment le premier point à résoudre. Mais comment ?

    Code php : 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
    include(dirname(__DIR__).DIRECTORY_SEPARATOR."config".DIRECTORY_SEPARATOR."config.php");
    $adresse =URL_LOCALHOST.DIRECTORY_SEPARATOR.PROJECT_NAME.DIRECTORY_SEPARATOR."methodes".DIRECTORY_SEPARATOR; //Adresse du dossier.
    if (is_dir($adresse)) {
         $dossier = opendir($adresse); //Ouverture du dossier.
         echo '<fieldset><legend>Liste des fichiers</legend><br>'; //Ouverture de fieldset 
         //(Fieldset permet de faire des cadres avec légende intégrée en haut a gauche. 
         //C'est très simple à utiliser et ça permet de répartir les formulaires en plusieurs parties et donc d'accroître leur lisibilité !). 
         while ($Fichier = readdir($dossier)) //Affichage...
         {  
              if ($Fichier != "." && $Fichier != "..") 
              { 
                   echo '<a href='.$adresse.$Fichier.' target="_blank">'.$Fichier.'</a><BR>'; 
              }
         }
         closedir($dossier); //Fermeture du dossier. 
         echo '<br></fieldset>'; //Fermeture du fieldset.
    }
    else echo "pas dir<br/>";
    avec if (!defined('URL_LOCALHOST')) define('URL_LOCALHOST', "http:".DIRECTORY_SEPARATOR.DIRECTORY_SEPARATOR.'localhost'.DIRECTORY_SEPARATOR);

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour FrankensteinSc,

    Encore une fois, tu t'adonnes à toutes les pires triturations de code...


    1- Quelle est l'arborescence entre le fichier et le dossier ?

    2- Que donne : echo $_SERVER['DOCUMENT_ROOT']; ?

    3- Avec "clic droit" sur le dossier, puis "Propriétés", qu'est-il écrit pour "Emplacement :" ?

    4- Au hasard :
    • (en attendant de connaitre l'arborescence)
    • en me référant à la ligne include(...)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $adresse = dirname(__DIR__).DIRECTORY_SEPARATOR."methodes"; // URL RELATIVE
    Dernière modification par Invité ; 01/11/2019 à 18h35.

  5. #5
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 497
    Billets dans le blog
    1
    Par défaut
    1- le dossier contient le fichier

    2-$_SERVER['DOCUMENT_ROOT']="C:/wamp64/www"; .

    3- C:\wamp64\www\ticket

    4- le hasard fait bien les choses

    Quand je liste les fichiers du dossier, je souhaite faire un lien dessus.

    exemple : echo '<a href='.$adresse.$Fichier.' target="_blank">'.$Fichier.'</a><br/>';mais avec $adresse=dirname(__DIR__).DIRECTORY_SEPARATOR."methodes".DIRECTORY_SEPARATOR; le lien est file:///C:/wamp64/www/ticket/methodes/nom_du_fichier.php donc j'ai du faire du frankensteinsc :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $adresse2 =URL_LOCALHOST.DIRECTORY_SEPARATOR.PROJECT_NAME.DIRECTORY_SEPARATOR."methodes".DIRECTORY_SEPARATOR; 
    if (!defined('URL_LOCALHOST')) define('URL_LOCALHOST', "http:".DIRECTORY_SEPARATOR.DIRECTORY_SEPARATOR.'localhost');
    on peut sûrement mieux faire...

  6. #6
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    salut laurentSc,

    pourquoi tu mélanges des URL avec de la lecture de dossiers ? scandir() ne travaille qu'en local, lui passer une URL ne sert à rien.
    Si tu veux offrir la possibilité de lire le contenu d'un répertoire, il va te falloir faire une correspondance entre le monde extérieur (l'arborescence des dossiers sur la page web) et l'arborescence de ton disque dur pour que scandir() puisse remplir son office.

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

Discussions similaires

  1. Problème avec explorer à l'ouverture des dossiers
    Par anouchkaya dans le forum Windows XP
    Réponses: 17
    Dernier message: 01/07/2008, 16h30
  2. Réponses: 4
    Dernier message: 23/06/2005, 16h07
  3. Aide sur ouverture de fichier avec access
    Par FusionR dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 17/06/2004, 13h02
  4. Ouverture de dossier
    Par Meuhmeuh dans le forum C++Builder
    Réponses: 3
    Dernier message: 05/03/2003, 09h08

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