Ma'lumot

PHP hujjatining ildizini topish

PHP hujjatining ildizini topish

PHP hujjat ildizi - bu PHP skript ishlayotgan papka. Skriptni o'rnatishda veb-ishlab chiqaruvchilar ko'pincha hujjat ildizini bilishlari kerak. Ko'pgina PHP skriptlari Apache serverida ishlaydi, ba'zilari Windows-da Microsoft IIS-da ishlaydi. Apache DOCUMENT_ROOT deb nomlangan muhitni o'z ichiga oladi, ammo IIS bunday emas. Natijada, PHP hujjatining ildizini aniqlashning ikkita usuli mavjud.

Apache ostida PHP hujjatining ildizini topish

Hujjat ildizi uchun texnik qo'llab-quvvatlashni elektron pochta orqali yuborish va kimdir javob berishini kutishning o'rniga, oddiy PHP skriptidan getenv () yordamida foydalanishingiz mumkin, bu Apache serverlarida hujjat ildiziga yorliq beradi.

Kodning ushbu bir nechta satrlari hujjat ildizini qaytaradi.

IIS ostida PHP hujjatining ildizini topish

Microsoft-ning Internet-ma'lumot xizmatlari Windows NT 3.5.1-da taqdim etilgan va shu vaqtdan beri Windows-ning ko'pgina nashrlariga kiritilgan, shu jumladan Windows Server 2016 va Windows 10-da, bu hujjat ildiziga yorliq bermaydi.

IIS-da bajarilayotgan skript nomini topish uchun ushbu koddan boshlang:

getenv-ni chop etish ("SCRIPT_NAME");

natijasi o'xshash natijani qaytaradi:

/product/description/index.php

bu skriptning to'liq yo'li. Siz to'liq yo'lni xohlamaysiz, faqat SCRIPT_NAME faylining nomi. Uni olish uchun quyidagilardan foydalaning:

haqiqiy yo'lni bosib chiqarish (basename (getenv ("SCRIPT_NAME"))));

natijani ushbu formatda qaytaradi:

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

Saytga tegishli faylga tegishli kodni olib tashlash va hujjat ildiziga kirish uchun hujjat ildizini bilishi kerak bo'lgan har qanday skriptning boshida quyidagi koddan foydalaning.

$ localpath = getenv ("SCRIPT_NAME");

$ absutepath = realpath ($ localPath);

// Windows oynalarini to'g'rilang

$ absutepath = str_replace ("", "/", $ absutepath);

$ docroot = substr ($ absutepath, 0, strpos ($ absolyutat,

$ lokal yo'l));

// foydalanish misoli

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

Ushbu usul ancha murakkabroq bo'lsa ham, IIS va Apache serverlarida ishlaydi.