Aller au contenu

Trouver le répertoire racine


Sujets conseillés

Posté (modifié)

Bonjour,

Je souhaiterais connaître une méthode en php pour trouver le nom du répertoire racine d'un site web. Par exemple, pour http://perso.truc.fr/nom_site/, je voudrais obtenir "nom_site".

Merci.

Modifié par Bozo
Posté

Je ne suis pas certain d'avoir bien compris ta question, mais pour avoir le nom du répertoire racine d'un serveur, il faut utiliser:

$_SERVER['DOCUMENT_ROOT']

qui donne le chemin complet jusqu'au répertoire courant, ou encore

$_SERVER['SCRIPT_FILENAME']

qui donne le chemin complet du script PHP en cours.

Par contre pour faire ce tu indiques dans ton exemple, tu peux utiliser la fonction dirname().

dirname($_SERVER('SCRIPT_URL')) donnera le résultat que tu indiques dans ton exemple (avec un / au début...)

Posté (modifié)

Je vais préciser un peu ma question. Je souhaite faire un site web susceptible d'être installé à différentes URL : htlp://www.mon_site.com, htlp://www.mon_site.com/rep1/ ou encore htlp://www.mon_site.com/rep1/rep2/, je ne peux pas bien savoir à l'avance. Le site doit fonctionner à n'importe lequel de ces endroits.

Dans la plupart des pages du site, j'ai besoin de faire appel à un même groupe de scripts (pour restreindre l'accès aux seuls utilisateurs autorisés). Ces scripts, je comptais les mettre dans un répertoire juste en-dessous du répertoire racine. Ensuite, dans chaque page, je voulais mettre une commande :

<?php include("$racine/scripts/script1.php"); ?>

Ceci ne marche qu'à la condition que $racine prenne pour valeur la chaîne représentant le répertoire racine, c'est-à-dire "/", "/rep1" ou "/rep1/rep2", respectivement pour les adresses données au-dessus.

Voilà, je ne sais pas si ce problème a une solution. Il faudrait pouvoir indiquer au serveur php qu'il héberge plusieurs sites distincts, etc... Il y a peut-être aussi des solutions totalement différentes de faire.

Modifié par Bozo
Posté

Le plus simple, c'est d'utiliser les répertoires include. La plupart des hébergeurs proposent un répertoire include (parfois même plusieurs) ! Ainsi pour faire appel à ton fichier script1.php à partir de n'importe quel répertoire il te suffit de faire :

include ('script1.php');

Il cherchera d'abord si tu as un fichier script1.php ds le répertoire courant, si c'est le cas, ce sera ce fichier qui sera appelé, sinon il ira chercher dans le répertoire include ! Sinon bien sûr tu peux utiliser $_SERVER['DOCUMENT_ROOT'] comme l'a dit Remi mais si ton hébergeur propose les répertoires include à mon avis c'est la meilleure solution. @+

Posté

Mon hébergeur propose bien les répertoires include, ça devrait régler mon problème. Par contre, je n'ai pas réussi à utiliser $_SERVER['DOCUMENT_ROOT']. Ca me renvoie un répertoire Unix du type :

/data/members/free/hebergeur/fr/p/o/s/mon_site/htdocs/

Posté

C'est normal que ça te renvoie un répertoire unix, normalement c'est le répertoire racine de tes fichiers quand tu tapes http://www.tondomaine.com il va chercher le fichier index.php dans le répertoire $_SERVER['DOCUMENT_ROOT'], c'est le chemin complet, pas relatif. Mais à mon avis l'utilisation du répertoire include c'est le plus simple ! @+

Posté

La solution du répertoire include est une bonne solution.

Mais si tu es toujours dans le même nom de domaine, tu peux utiliser le simple adressage en "base relative" :

<?php include("/scripts/script1.php"); ?>

(mais bon, je ne suis toujours pas certain d'avoir bien compris... :1eye: car tu parles de plusieurs sites, mais dans tes exemples tu prends le même nom de domaine... :blink: Ou alors serais-tu en multidomaine?)

Posté

Bonjour,

il faut que, d'un coté tu définisses une 'constante' :

define("REPERTOIRE_RACINE","/home/);

et d'un autre coté, à chaque fois que tu en as besoin, tu fais appel à ce répertoire :

include(REPERTOIRE_RACINE."fichier.php");

Ainsi, tu as besoin de peu de changements pour héberger ton site sur un autre serveur.

Tu peux aussi, ainsi, faire l'ensemble des dossiers de ton répertoire.

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...