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 :

Récupérer le nom du répertoire parent


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 161
    Points : 75
    Points
    75
    Par défaut Récupérer le nom du répertoire parent
    salutatous,

    je précise que j'ai testé basename(), dirname(), chdir() mais ça ne me convient pas !

    je m'explique :

    j'ai un fichier nommé "mon_fichier.php" contenu dans un dossier nommé "mon_dossier".

    je voudrais placer un bout de code dans "mon_fichier.php" qui me permette d'afficher le nom du dossier parent, à savoir "mon_dossier".

    j'ai fait ça mais ça ne fonctionne pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $niveau_dossier_parent = '../';
    $nom_dossier_parent = dirname($niveau_dossier_parent);
    echo 'Nom du dossier parent : '.$nom_dossier_parent.'<br />';
    j'ai également fait ça sans succès :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $niveau_dossier_parent = '../';
    $nom_dossier_parent = chdir($niveau_dossier_parent);
    echo 'Nom du dossier parent : '.$nom_dossier_parent.'<br />';
    Merci de vos réponses...

  2. #2
    Inactif   Avatar de Deallyra
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    1 997
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 1 997
    Points : 1 769
    Points
    1 769
    Par défaut
    Bonjour,

    Ca ne fonctionne pas car ?

    Quel est le résultat obtenu via un echo ?

    Si tu obtiens tout le chemin, il suffit d'un explode

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 161
    Points : 75
    Points
    75
    Par défaut
    avec dirname() j'obtiens cet affichage : .
    avec chdir() j'obtiens cet affichage : 1

    par contre je viens de tester ça qui fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $nom_dossier_parent = explode("/", $_SERVER["PHP_SELF"]);
    $nom_dossier_parent = $nom_dossier_parent[3];
    et là j'obtiens cet affichage : mon_dossier

    MAIS je suis confronté à un nouveau problème !

    Si j'inclus mon fichier "mon_fichier.php" (contenant donc ce bout de code) dans mon fichier "index.php" par le biais d'un require_once()... je perd la trace du dossier "mon_dossier" !!!

    comment faut-il que je fasse pour garder la trace de "mon_dossier" ?

    merci de m'aider

  4. #4
    Inactif   Avatar de Deallyra
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    1 997
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 1 997
    Points : 1 769
    Points
    1 769
    Par défaut
    Pas très compréhensible ta demande...

    Mais vas voir du coté des variables superglobales...

    Je crois que ça répondra à ton problème

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 161
    Points : 75
    Points
    75
    Par défaut
    en espérant être plus clair :

    j'ai un dossier "mon_dossier"
    qui contient un fichier "mon_fichier.php"
    dont l'arborescence sur mon serveur est la suivante :
    www/dossier_1/dossier_2/mon_dossier/mon_fichier.php

    je souhaiterais placer un bout de code dans "mon_fichier.php" qui puisse récupérer le nom de son dossier parent, à savoir "mon_dossier"

    je me suis aperçu que les fonctions basename(), dirname() ou chdir() fonctionnent en descendant dans la hiérachie (du dossier "parent" vers le fichier "enfant") pour obtenir ce que je souhaite.

    en gros ça marche si je met :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $niveau_dossier_parent = 'www/dossier_1/dossier_2/mon_dossier/';
    $nom_dossier_parent = dirname($niveau_dossier_parent);
    un echo m'affichera bien le texte "mon_dossier"

    MAIS je voudrais faire la manip inverse, à savoir remonter dans la hiérarchie, avec un ../

    j'ai donc essayé ça qui ne fonctionne pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $niveau_dossier_parent = '../';
    $nom_dossier_parent = dirname($niveau_dossier_parent);
    oui je sais mon explication est un peu longue, mais c'est une thérapie

    et je suis tombé sur ce bout de code qui permet de faire ce que je souhaite :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $niveau_dossier_parent = explode("/", $_SERVER["PHP_SELF"]);
    $nom_dossier_parent = $niveau_dossier_parent[3];
    MAIS si j'appelle "mon_fichier.php" (qui intègre ce bout de code juste au-dessus) par un require_once() dans mon fichier index qui se trouve au 1er niveau sur le serveur (www/index.php), et bien le lien avec "mon_dossier" est cassé...

    conclusion...
    je vais essayer d'aller voir du côté des superglobales

  6. #6
    Membre expérimenté

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 060
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 060
    Points : 1 357
    Points
    1 357
    Par défaut
    Bonjour,

    Essaie ça dans ton fichier inclus :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $nom_dossier_parent = dirname(__FILE__);

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 161
    Points : 75
    Points
    75
    Par défaut
    bonjour Jeca,

    si je fait ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $nom_dossier_parent = dirname(__FILE__);
    echo $nom_dossier_parent;
    ça m'affiche ça :
    /Volumes/data/blabla/dossier_1/dossier_2/mon_dossier

    mais je voudrais qu'il m'affiche uniquement ça :
    mon_dossier

    c'est fou ça ! le PHP ne permet pas de remonter d'un niveau par le biais d'un ../ puis d'afficher simplement le nom du dossier parent !!!

    sinon je m'en sort en mettant tout simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $nom_dossier_parent = "mon_dossier";
    mais ce n'est plus trop dynamique...

  8. #8
    Membre expérimenté

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 060
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 060
    Points : 1 357
    Points
    1 357
    Par défaut
    Citation Envoyé par nicomax34 Voir le message
    c'est fou ça ! le PHP ne permet pas de remonter d'un niveau par le biais d'un ../ puis d'afficher simplement le nom du dossier parent !!!
    Ce qui est surtout fou, c'est de ne pas passer 5 mn à chercher :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
      $dossierParent = array_pop(explode(DIRECTORY_SEPARATOR, dirname(__FILE__)));
      echo $dossierParent . '<br>';

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 161
    Points : 75
    Points
    75
    Par défaut
    merci Jeca,
    ça fonctionne et s'intègre parfaitement avec mes appels par require().

    Ce qui est surtout fou, c'est de ne pas passer 5 mn à chercher
    crois-moi j'ai cherché plus de "5 mn" mais parfois on ne cherche pas forcément dans la bonne direction...
    cette discussion m'a néanmoins permis de manipuler et de mieux comprendre les fonctions dirname(), chdir() et basename()...

    merci à tous

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

Discussions similaires

  1. Afficher le nom du répertoire parent
    Par simono dans le forum Langage
    Réponses: 2
    Dernier message: 03/04/2008, 18h42
  2. récupérer le nom du répertoire contenant
    Par j_marc dans le forum Windows
    Réponses: 1
    Dernier message: 07/09/2007, 18h23
  3. Réponses: 7
    Dernier message: 26/05/2007, 13h43
  4. Récupérer les noms des classes parents
    Par see++ dans le forum Général Python
    Réponses: 2
    Dernier message: 12/03/2007, 18h35
  5. [TTreeView] Comment récupérer le nom d'un parent ?
    Par EssaiEncore dans le forum Composants VCL
    Réponses: 2
    Dernier message: 17/11/2005, 17h43

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