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 :

reculer après un dirname(__DIR__)


Sujet :

Langage PHP

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

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 339
    Points : 5 723
    Points
    5 723
    Billets dans le blog
    1
    Par défaut reculer après un dirname(__DIR__)
    Bonjour,

    je voudrais faire un include d'un fichier qui se trouve par rapport à son répertoire dans : ../../_includes/. Je voudrais quand même utiliser dirname(__DIR__) car je peux supprimer l'erreur de PHP avec par exemple include_once($_SERVER['DOCUMENT_ROOT']."/eis2/eisnew/_includes/html0-topPHP.php"); mais quand je vais passer de l'environnement de test à celui de production, ça ne marchera plus...Comment faire ?
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu peux utiliser /../ dans ton chemin pour reculer.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

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

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 339
    Points : 5 723
    Points
    5 723
    Billets dans le blog
    1
    Par défaut
    Sauf que include_once("../../_includes/html1-debut.php"); à la place de

    include_once("$_SERVER['DOCUMENT_ROOT']."/eis2/eisnew/_includes/html1-debut.php"); conduit à ce warning :
    Warning: include_once(../../_includes/html1-debut.php): failed to open stream: No such file or directory in C:\wamp\www\eis2\eisnew\page\calendar-pdo\admin\add-event.php on line 11
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  4. #4
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 222
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 222
    Points : 15 513
    Points
    15 513
    Par défaut
    vous avez mal compté les répertoires, il y en a 3 et pas 2 donc essayez cela : "../../../_includes/html1-debut.php"

  5. #5
    Invité
    Invité(e)
    Par défaut
    Laurent...


    • dirname(__DIR__) : recule d'1 niveau
    • dirname(dirname(__DIR__)) : recule de 2 niveaux
    • dirname(dirname(dirname(__DIR__))) : recule de 3 niveaux
    • ...


    L'intérêt est que le fichier dans lequel se trouve l'include peut lui-même être inclus dans un autre, qui peut se trouver à n'importe quel niveau.

    Plus clairement (?) :

    • __DIR__, dirname(__DIR__).... ne dépend que du chemin relatif entre le fichier inclus et celui dans lequel il est inclus
    • Alors que ../../ est un chemin relatif entre ce fichier inclus et le fichier d'origine, qui peut être à un autre niveau que le fichier dans lequel il est inclus (cf explication ci-dessus )

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

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 339
    Points : 5 723
    Points
    5 723
    Billets dans le blog
    1
    Par défaut
    Merci Jérôme du conseil, ce qui donne : include_once(dirname(dirname(dirname(__DIR__)))."/_includes/html0-topPHP.php"); et encore une confirmation que je vais oublier la POO (http://www.developpez.net/forums/d16...s/#post8792396)

    et Mathieu avait raison : il faut reculer 3 fois et pas 2.
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 27/01/2015, 11h35
  2. Réponses: 0
    Dernier message: 25/07/2014, 06h22
  3. action APRES chargement complet ...
    Par PinGuy dans le forum Delphi
    Réponses: 7
    Dernier message: 06/07/2006, 18h16
  4. [interbase]Se logger après une première installation
    Par Ultra-FX dans le forum InterBase
    Réponses: 3
    Dernier message: 13/09/2002, 12h44
  5. Comment ne pas rejouer une animation après un clic ?
    Par mmmmhhh dans le forum ActionScript 1 & ActionScript 2
    Réponses: 4
    Dernier message: 04/09/2002, 17h11

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