Bozo Posté 10 Octobre 2004 Posté 10 Octobre 2004 (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é 10 Octobre 2004 par Bozo
Remi Posté 10 Octobre 2004 Posté 10 Octobre 2004 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...)
Bozo Posté 10 Octobre 2004 Auteur Posté 10 Octobre 2004 (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é 10 Octobre 2004 par Bozo
AvenueDuWeb Posté 10 Octobre 2004 Posté 10 Octobre 2004 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. @+
Bozo Posté 10 Octobre 2004 Auteur Posté 10 Octobre 2004 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/
AvenueDuWeb Posté 10 Octobre 2004 Posté 10 Octobre 2004 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 ! @+
Remi Posté 11 Octobre 2004 Posté 11 Octobre 2004 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... car tu parles de plusieurs sites, mais dans tes exemples tu prends le même nom de domaine... Ou alors serais-tu en multidomaine?)
Anonymus Posté 11 Octobre 2004 Posté 11 Octobre 2004 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.
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant