La radice del documento PHP è la cartella in cui è in esecuzione uno script PHP. Durante l'installazione di uno script, gli sviluppatori Web devono spesso conoscere la radice del documento. Sebbene molte pagine scritte con PHP vengano eseguite su un server Apache, alcune funzionano con Microsoft IIS su Windows. Apache include una variabile d'ambiente chiamata DOCUMENT_ROOT, ma IIS no. Di conseguenza, esistono due metodi per individuare la radice del documento PHP.
Invece di inviare tramite e-mail il supporto tecnico per la radice del documento e attendere che qualcuno risponda, puoi usare un semplice script PHP con getenv (), che fornisce un collegamento sui server Apache alla radice del documento.
Queste poche righe di codice restituiscono la radice del documento.
Internet Information Services di Microsoft è stato introdotto con Windows NT 3.5.1 ed è stato incluso nella maggior parte delle versioni di Windows da allora, inclusi Windows Server 2016 e Windows 10. Non fornisce un collegamento alla radice del documento.
Per trovare il nome dello script attualmente in esecuzione in IIS, iniziare con questo codice:
print getenv ("SCRIPT_NAME");
che restituisce un risultato simile a:
/product/description/index.php
che è il percorso completo della sceneggiatura. Non vuoi il percorso completo, ma solo il nome del file per SCRIPT_NAME. Per ottenerlo, utilizzare:
print realpath (basename (getenv ("SCRIPT_NAME")));
che restituisce un risultato in questo formato:
/usr/local/apache/share/htdocs/product/description/index.php
Per rimuovere il codice che fa riferimento al file relativo al sito e arrivare alla radice del documento, utilizzare il codice seguente all'inizio di qualsiasi script che deve conoscere la radice del documento.
$ LocalPath = getenv ( "SCRIPT_NAME");
$ AbsolutePath = realpath ($ localPath);
// corregge le barre di Windows
$ AbsolutePath = str_replace ( "\\", "/", $ AbsolutePath);
$ Docroot = substr ($ AbsolutePath, 0, strpos ($ AbsolutePath,
$ LocalPath));
// un esempio di utilizzo
include ($ docroot "/ include / config.php".);
Questo metodo, sebbene più complesso, viene eseguito su entrambi i server IIS e Apache.