Chemin relatif d'un répertoire ?

Eléphant du PHP | 84 Messages

26 avr. 2005, 22:54

Bonjour à tous,

Je voudrais déterminer automatiquement le chemin relatif d'un sous répertoire ( ../../) par rapport à la racine d'un site, voire par rapport à un répertoire parent.

Quelqu'un aurait-il une (voire plusieurs :wink: ) idée :?:

Merci,

Mammouth du PHP | 19672 Messages

26 avr. 2005, 23:04

Si j'étais blonde, je dirais : "Vous pouvez répéter la question?", mais je suis roux et très dégarni alors ce sera : "Serait-il possible d'avoir une idée de la signification de la question ?"
Je soupçonne bien quelque chose, mais c'est fugace, des précisions aideraient beaucoup, merci :)
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 84 Messages

27 avr. 2005, 00:02

OK!

Supposons que le répertoire racine du site soit /html.
Supposons l'arborescence suivante:

Code : Tout sélectionner

html |_ /includes | |_session.php | |_config.php | |_ /Dir1 | |_/Dir2 | | |_index2.php | | | |_index1.php | index.php
les fichier index.php, index1.php et index2.php font tous appel au fichier session.php du repertoire 'includes'.

index.php contient require('includes/session.php') ;
index1.php contient require('../includes/session.php') ;
index2.php contient require('../../includes/session.php') ;

session.php contient require(‘includes/config.php’) ;

Lorsqu’on appelle index.php le fichier session.php va bien rechercher les informations de config.php dans le répertoire includes.

Problème :
- Lorsqu’on appelle index1.php le fichier session.php va rechercher config.php à la racine de Dir1.
ERREUR! Le bon chemin d’accès à config.php est à ce moment là ‘../includes/config.php’.

- Lorsqu’on appelle index2.php le fichier session.php va rechercher config.php à la racine de Dir2.
ERREUR! Le bon chemin d’accès à config.php est maintenant ‘../../includes/config.php’.

Solution :
- Faire en sorte que le fichier session.php contienne le code require($path.’/includes/config.php’).
- La variable $path doit donc pouvoir être déterminée en fonction de l’emplacement du répertoire en cours d’utilisation.

J’espère avoir été suffisemment clair dans mes explications :wink:

Merci,

Mammouth du PHP | 19672 Messages

27 avr. 2005, 08:04

On doit pouvoir faire ça à partir des variables d'environnement, $_SERVER['SCRIPT_NAME'] et $_SERVER['HTTP_HOST'] entre autre.
Regarde dans ton phpinfo(), il y en a plusieurs intéressantes selon ta configuration. à partir de là, avec des fonctions comme explode() pour compter les "/" entre le fichier et la racine du site, tu dois pouvoir trouver.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 219 Messages

27 avr. 2005, 08:22

Utilise la variable $_SERVER['DOCUMENT_ROOT'] et tu arrives à la racine de ton site.

a+
daoud