par
naholyr » 13 sept. 2006, 14:15
Je pense qu'il vaut mieux travailler avec REQUEST_URI, DOCUMENT_ROOT ne correspondant parfois pas du tout à ton url (comment vas-tu pouvoir convertir "par magie" /home/sites/.users/1394/web/rep1/index.php en
http://www.monsite.com/rep1/index.php ?

)
Partant donc de REQUEST_URI, il suffit de retirer la fin (le domaine n'apparaît pas). dirname() fonctionnera très bien pour ça :
dirname(getenv('REQUEST_URI')) renverra pour
http://www.monsite.com/rep1/rep2/fichier.php le résultat
/rep1/rep2. Si tu veux coller exactement au résultat que tu souhaites tu n'as qu'à ôter le "/" initial
substr(dirname(getenv('REQUEST_URI')),1)
L'autre méthode, c'est d'avoir un fichier de config, dans lequel tu entres l'url de la racine de ton site. C'est comme ça que font tous les CMS (à ma connaissance) par exemple.
Edit : mon commentaire avec DOCUMENT_ROOT était stupide, je n'avais pas refléchi __FILE__ et DOCUMENT_ROOT peuvent aussi bien servir que REQUEST_URI, mais gare aux includes ! La "formule" serait en tous cas
substr(dirname(__FILE__), strlen(getenv('DOCUMENT_ROOT'))+1)
Je pense qu'il vaut mieux travailler avec REQUEST_URI, DOCUMENT_ROOT ne correspondant parfois pas du tout à ton url (comment vas-tu pouvoir convertir "par magie" /home/sites/.users/1394/web/rep1/index.php en http://www.monsite.com/rep1/index.php ? :gla: )
Partant donc de REQUEST_URI, il suffit de retirer la fin (le domaine n'apparaît pas). dirname() fonctionnera très bien pour ça : [b]dirname(getenv('REQUEST_URI'))[/b] renverra pour http://www.monsite.com/rep1/rep2/fichier.php le résultat [b]/rep1/rep2[/b]. Si tu veux coller exactement au résultat que tu souhaites tu n'as qu'à ôter le "/" initial [b]substr(dirname(getenv('REQUEST_URI')),1)[/b]
L'autre méthode, c'est d'avoir un fichier de config, dans lequel tu entres l'url de la racine de ton site. C'est comme ça que font tous les CMS (à ma connaissance) par exemple.
Edit : mon commentaire avec DOCUMENT_ROOT était stupide, je n'avais pas refléchi __FILE__ et DOCUMENT_ROOT peuvent aussi bien servir que REQUEST_URI, mais gare aux includes ! La "formule" serait en tous cas [b]substr(dirname(__FILE__), strlen(getenv('DOCUMENT_ROOT'))+1)[/b]