J'ai cette structure de dossiers dans mon projet PHP. (c'est comme indiqué dans les éclipses)
-MySystem
+Code
+Data_Access
-Public_HTML
+css
+js
+Templates
-resources
Quand j'essaye ce code
echo $_SERVER['DOCUMENT_ROOT']
la sortie est
D: / espace de travail
Comment puis-je obtenir le chemin d'accès à RootDirectory du système ( MySystem
), sans coder en dur le nom du dossier?
__DIR__
. Il est relatif au fichier lui-même, donc si dans un include, dans un sous-répertoire, il ne retournera pas uniquement votre répertoire racine.Quand tu dis ça
contient ce chemin:
Alors
D:
c'est ce que vous cherchez, n'est-ce pas? Dans ce cas, vous pouvez exploser la chaîne par des barres obliques et renvoyer la première:Cela affichera le répertoire racine du serveur.
Mise à jour: lorsque vous utilisez la constante
DIRECTORY_SEPARATOR
au lieu de la barre oblique codée en dur ('/'
), ce code fonctionne également sous Windows.Mise à jour 2: La
$_SERVER
variable globale n'est pas toujours disponible. En ligne de commande (cli) par exemple. Vous devriez donc utiliser à la__DIR__
place de$_SERVER['DOCUMENT_ROOT']
.__DIR__
renvoie le chemin du fichier php lui-même.la source
__DIR__
place de$_SERVER['DOCUMENT_ROOT']
.utilisez la fonction PHP:
getcwd()
Obtient le répertoire de travail actuel.
la source
Je veux souligner la façon dont Wordpress gère cela:
Comme Wordpress est très utilisé sur le Web et fonctionne également très bien localement, j'ai beaucoup confiance en cette méthode.
la source
tu peux essayer:
$_SERVER['PATH_TRANSLATED']
citation:
source: php.net/manual
la source
la source
Résumé
Cet exemple suppose que vous savez toujours où se trouve le dossier racine d'Apache '/ var / www /' et que vous essayez de trouver le chemin du dossier suivant (par exemple, '/ var / www / my_website_folder'). Cela fonctionne également à partir d'un script ou du navigateur Web, c'est pourquoi il existe du code supplémentaire.
Code PHP7
Exemple
Production:
Détails:
En gros, essaie d'abord d'obtenir DOCUMENT_ROOT s'il contient '/ var / www /', puis utilisez-le, sinon obtenez le répertoire actuel (qui existe beaucoup dans le projet) et obtient la valeur du chemin suivant en fonction du nombre de $ chemin racine. Remarque: ajout d'instructions rtrim pour s'assurer que le chemin retourne se terminant par un «/» dans tous les cas. Il ne vérifie pas s'il doit être plus grand que / var / www / il peut également renvoyer / var / www / comme réponse possible.
la source