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 :

Position dans l’arborescence avec php


Sujet :

Langage PHP

  1. #1
    Membre éclairé Avatar de BRUNO71
    Homme Profil pro
    Retraité
    Inscrit en
    Janvier 2007
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 507
    Par défaut Position dans l’arborescence avec php
    Bonjour,

    Déjà pour commencer, est-ce le bon titre ?
    Je m'explique :

    Cette recherche provient du fait qu’il suffit de changer de répertoire un fichier php et de s'apercevoir que plus rien ne fonctionne…
    Dans le but de simplifier le codage de mes pages, je m’exerce et j’apprends à trouver le meilleur chemin d’une page php dont voici deux exemples :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    include ($_SERVER["DOCUMENT_ROOT"].'/forum/config/1.php');
     
    include (dirname(__FILE__).'/forum/config/1.php'));
    Le premier fonctionne bien, mais pas le deuxième et pourtant il semblerait que la deuxième solution soit le mieux ?
    En cherchant sur le manuel de php, (dur dur de tout comprendre, seul chez soit), je vois tout ces chemins …..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     chdir ('../');   
      realpath     
     realpath(dirname(__FILE__)) . DIRECTORY_SEPARATOR .
    Je précise que je fonctionne en local !
    Quel serait le mieux pour avoir un code simple et sûr ?

    Y a-t-il une âme charitable pour m’aider à comprendre, merci…

  2. #2
    Membre expérimenté

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 242
    Par défaut
    Pas sûr de bien comprendre ton but, mais voici quelques éclaircisements...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    include ($_SERVER["DOCUMENT_ROOT"].'/forum/config/1.php');
    Inclus le fichier /forum/config/1.php qui se situe dans le document root, c'est à dire en général, ton répertoire www. Remarque : peu importe le fichier ou tu écris cette ligne, ça inclura toujours le même fichier.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    include (dirname(__FILE__).'/forum/config/1.php'));
    Ici, c'est un peu plus complexe... __FILE__ est une constante magique. La valeur de cette constante vaut toujours le chemin absolu du script qui est exécuté actuellement. dirname(__FILE__) te renvoie simplement le répertoire du script exécuté actuellement. Ensuite, tu ajoutes le chemin vers ton fichier 1.php.
    Donc ici, contrairement au cas précédent, ça va pas faire du tout la même chose si tu écris ce code dans plusieurs fichiers, situés dans des répertoires différents !

    A toi de voir ce que tu veux utiliser en fonction de ce que tu veux faire.

    chdir(..) change le répertoire courant. Le répertoire courant, sauf erreur de ma part, est normalement le répertoire du premier script PHP appelé (et pas nécessairement celui du fichier que tu exécutes actuellement). Par exemple, si tu vas sur http://localhost/repTest/test.php, le répertoire courant est repTest (généralement situé dans ton www).

    Enfin, realpath te résoud tous les chemins relatif et te renvoie un répertoire absolu.

    Ca t'aide tout ça ?

  3. #3
    Membre éclairé Avatar de BRUNO71
    Homme Profil pro
    Retraité
    Inscrit en
    Janvier 2007
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 507
    Par défaut
    Bonjour,

    Très bien....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    include ($_SERVER["DOCUMENT_ROOT"].'/forum/config/1.php');
     
    include dirname(__FILE__).'../../forum/config/1.php';
    Donc là ça fonctionne pour les deux, ce qui veut dire que le plus simple est d'écrire omme la première ligne ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    include ($_SERVER["DOCUMENT_ROOT"].' ');
    Pas de soucis de (../) et en utilisant cette variable, si je change de serveur, les scripts utiliseront le nouveau chemin sans avoir besoin de modification ?

    Merci

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

Discussions similaires

  1. Inserer image dans excel avec PHP
    Par hamzito dans le forum Langage
    Réponses: 5
    Dernier message: 12/08/2011, 12h53
  2. Ajouter / supprimer un cron dans PLESK avec PHP
    Par Dark Cid dans le forum Serveurs (Apache, IIS,...)
    Réponses: 2
    Dernier message: 31/10/2008, 14h03
  3. [MySQL] Afficher une image sélectionnée dans base avec php
    Par fAdoua123 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 12/03/2008, 18h25
  4. [MySQL] Insérer un vecteur dans MySQL avec PHP
    Par fAdoua123 dans le forum PHP & Base de données
    Réponses: 21
    Dernier message: 21/02/2008, 17h50
  5. Ajouter un rendez-vous dans Outlook avec PHP
    Par Mut dans le forum Langage
    Réponses: 3
    Dernier message: 11/09/2007, 14h05

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