Trouver la racine du document PHP

La racine du document PHP est le dossier où s'exécute un script PHP. Lors de l'installation d'un script, les développeurs Web doivent souvent connaître la racine du document. Bien que de nombreuses pages scriptées avec PHP s'exécutent sur un serveur Apache, certaines s'exécutent sous Microsoft IIS sous Windows. Apache inclut une variable d'environnement appelée DOCUMENT_ROOT, mais pas IIS. Par conséquent, il existe deux méthodes pour localiser la racine du document PHP.

Trouver la racine du document PHP sous Apache

Au lieu d'envoyer un e-mail au support technique pour la racine du document et d'attendre que quelqu'un réponde, vous pouvez utiliser un simple script PHP avec getenv (), qui fournit un raccourci sur les serveurs Apache vers la racine du document.

Ces quelques lignes de code renvoient la racine du document.

Recherche de la racine du document PHP sous IIS

Microsoft Internet Information Services a été introduit avec Windows NT 3.5.1 et a été inclus dans la plupart des versions de Windows depuis lors, y compris Windows Server 2016 et Windows 10. Il ne fournit pas de raccourci vers la racine du document.

Pour trouver le nom du script en cours d'exécution dans IIS, commencez par ce code:

print getenv ("SCRIPT_NAME");

qui renvoie un résultat similaire à:

/product/description/index.php

qui est le chemin complet du script. Vous ne voulez pas le chemin complet, juste le nom du fichier pour SCRIPT_NAME. Pour l'obtenir, utilisez:

print realpath (basename (getenv ("SCRIPT_NAME")));

qui renvoie un résultat dans ce format:

/usr/local/apache/share/htdocs/product/description/index.php

Pour supprimer le code faisant référence au fichier relatif au site et arriver à la racine du document, utilisez le code suivant au début de tout script qui doit connaître la racine du document.

$ localpath = getenv ("SCRIPT_NAME");

$ absolutepath = realpath ($ localPath);

// corrige les barres obliques de Windows

$ absolutepath = str_replace ("\\", "/", $ absolutepath);

$ docroot = substr ($ absolutepath, 0, strpos ($ absolutepath,

$ localpath));

// un exemple d'utilisation

include ($ docroot. "/ includes / config.php");

Cette méthode, bien que plus complexe, s'exécute sur les serveurs IIS et Apache.