Rădăcina documentului PHP este folderul în care rulează un script PHP. Atunci când instalează un script, dezvoltatorii web trebuie să cunoască rădăcina documentului. Deși multe pagini scriptate cu PHP rulează pe un server Apache, unele rulează sub Microsoft IIS pe Windows. Apache include o variabilă de mediu numită DOCUMENT_ROOT, dar IIS nu. Drept urmare, există două metode pentru localizarea rădăcinei documentului PHP.
În loc să trimiteți prin e-mail suport tehnic pentru rădăcina documentului și așteptați ca cineva să răspundă, puteți utiliza un script PHP simplu cu getenv (), care oferă o scurtătură pe serverele Apache la rădăcina documentului.
Aceste câteva linii de cod returnează rădăcina documentului.
Serviciile de informare pe Internet de Microsoft au fost introduse cu Windows NT 3.5.1 și au fost incluse în majoritatea versiunilor Windows de atunci, inclusiv Windows Server 2016 și Windows 10. Nu furnizează o comandă rapidă la rădăcina documentului.
Pentru a găsi numele scriptului care se execută în IIS, începeți cu acest cod:
print getenv ("SCRIPT_NAME");
care returnează un rezultat similar cu:
/product/description/index.php
care este calea completă a scenariului. Nu doriți calea completă, ci doar numele fișierului pentru SCRIPT_NAME. Pentru a obține, utilizați:
print realpath (nume de bază (getenv ("SCRIPT_NAME")));
care returnează un rezultat în acest format:
/usr/local/apache/share/htdocs/product/description/index.php
Pentru a elimina codul referindu-se la fișierul relativ al site-ului și a ajunge la rădăcina documentului, utilizați următorul cod la începutul oricărui script care trebuie să cunoască rădăcina documentului.
$ Localpath = getenv ( "SCRIPT_NAME");
$ Absolutepath = ului căilor ($ localPath);
// reparați reducerile de Windows
$ Absolutepath = str_replace ( "\\", "/", $ absolutepath);
$ Docroot = substr ($ absolutepath, 0, strpos ($ absolutepath,
$ Localpath));
// un exemplu de utilizare
includ ($ docroot "/ include / config.php".);
Această metodă, deși este mai complexă, se rulează atât pe serverele IIS, cât și pe cele Apache.