Trovare la radice del documento PHP

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.

Trovare la radice del documento PHP in Apache

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.

Individuazione della radice del documento PHP in IIS

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.