जानकारी

PHP दस्तावेज़ रूट ढूँढना

PHP दस्तावेज़ रूट ढूँढना

PHP डॉक्यूमेंट रूट वह फ़ोल्डर है जहाँ PHP स्क्रिप्ट चल रही है। स्क्रिप्ट स्थापित करते समय, वेब डेवलपर्स को अक्सर दस्तावेज़ रूट को जानने की आवश्यकता होती है। हालाँकि PHP के साथ लिपिबद्ध कई पृष्ठ Apache सर्वर पर चलते हैं, कुछ विंडोज पर Microsoft IIS के तहत चलते हैं। Apache में DOCUMENT_ROOT नामक एक पर्यावरण चर शामिल है, लेकिन IIS नहीं करता है। नतीजतन, PHP दस्तावेज़ रूट का पता लगाने के लिए दो तरीके हैं।

अपाचे के तहत PHP दस्तावेज़ रूट ढूँढना

दस्तावेज़ रूट के लिए तकनीकी समर्थन ईमेल करने और किसी की प्रतिक्रिया के लिए प्रतीक्षा करने के बजाय, आप getenv () के साथ एक सरल PHP स्क्रिप्ट का उपयोग कर सकते हैं, जो दस्तावेज़ रूट पर Apache सर्वर पर एक शॉर्टकट प्रदान करता है।

कोड की ये कुछ पंक्तियाँ दस्तावेज़ रूट को वापस करती हैं।

IIS के तहत PHP दस्तावेज़ रूट ढूँढना

Microsoft की इंटरनेट सूचना सेवाओं को Windows NT 3.5.1 के साथ पेश किया गया था और तब से अधिकांश विंडोज रिलीज़ में शामिल किया गया है- Windows Server 2016 और Windows 10. यह दस्तावेज़ रूट को शॉर्टकट की आपूर्ति नहीं करता है।

IIS में वर्तमान में निष्पादित स्क्रिप्ट का नाम खोजने के लिए, इस कोड से शुरुआत करें:

प्रिंट गेटेनव ("SCRIPT_NAME");

जिसके परिणामस्वरूप एक परिणाम मिलता है:

/product/description/index.php

जो स्क्रिप्ट का पूर्ण पथ है। आपको पूर्ण पथ नहीं चाहिए, बस SCRIPT_NAME के ​​लिए फ़ाइल का नाम है। इसे पाने के लिए, उपयोग करें:

प्रिंट रियलपैथ (बेसनेम (getenv ("SCRIPT_NAME")));

जो इस प्रारूप में परिणाम देता है:

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

साइट-सापेक्ष फ़ाइल का संदर्भ देने वाले कोड को हटाने और दस्तावेज़ रूट पर पहुंचने के लिए, किसी भी स्क्रिप्ट की शुरुआत में निम्नलिखित कोड का उपयोग करें जिसे दस्तावेज़ रूट को जानने की आवश्यकता है।

$ Localpath = getenv ( "SCRIPT_NAME");

$ Absolutepath = realpath ($ localPath);

// विंडोज स्लैश को ठीक करें

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

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

$ Localpath));

// उपयोग का एक उदाहरण

($ Docroot "/ / config.php शामिल"।) शामिल हैं;

यह विधि, हालांकि अधिक जटिल है, दोनों IIS और Apache सर्वर पर चलती है।