मैं हमेशा पूर्ण पथ का उपयोग करें, लेकिन मैं यह भी से निकाले गए मूल्यों पर आधारित है, एक बूटस्ट्रैप फ़ाइल जहाँ मैं सबसे अधिक इस्तेमाल किया स्थिरांक के रूप में पथ को परिभाषित के साथ किसी भी कस्टम पीएचपी परियोजना शुरू $_SERVER
।
यह वह जगह है मैं अपने रूट पथ कैसे परिभाषित:
define("LOCAL_PATH_ROOT", $_SERVER["DOCUMENT_ROOT"]);
define("HTTP_PATH_ROOT", isset($_SERVER["HTTP_HOST"]) ? $_SERVER["HTTP_HOST"] : (isset($_SERVER["SERVER_NAME"]) ? $_SERVER["SERVER_NAME"] : '_UNKNOWN_'));
पथ LOCAL_PATH_ROOT
दस्तावेज़ जड़ है। पथ HTTP_PATH_ROOT
HTTP के माध्यम से एक ही पथ तक पहुंचने के बराबर है।
str_replace(LOCAL_PATH_ROOT, RELATIVE_PATH_ROOT, $my_path)
आप विंडोज आधारित सर्वर के साथ संगतता सुनिश्चित करने के लिए चाहते हैं, तो आप निर्देशिका बदलने के लिए की आवश्यकता होगी:
उस समय, एक HTTP पथ के लिए किसी भी स्थानीय पथ परिवर्तित करने के लिए निम्न कोड के साथ किया जा सकता है साथ ही एक यूआरएल विभाजक के साथ विभाजक:
:
str_replace(LOCAL_PATH_ROOT, RELATIVE_PATH_ROOT, str_replace(DIRECTORY_SEPARATOR, '/', $my_path))
यहाँ है कि मैं PHP PowerTools boilerplate के लिए उपयोग कर रहा हूँ पूर्ण बूटस्ट्रैप कोड है
आप अपने खुद के परियोजना के लिए ऊपर दिए गए कोड जोड़ दें, तो इस बिंदु (जो get_defined_constants(true)
साथ कर सकते हैं पर सभी उपयोगकर्ता स्थिरांक outputting एक परिणाम है कि इस तरह कुछ हद तक लग रहा है देना चाहिए:
array (
'LOCAL_PATH_BOOTSTRAP' => '/var/www/libraries/backend/Data/examples',
'URL_SEPARATOR' => '/',
'DS' => '/',
'PS' => ':',
'US' => '/',
'RELATIVE_PATH_ROOT' => '',
'LOCAL_PATH_ROOT' => '/var/www',
'HTTP_PATH_ROOT' => 'localhost:8888',
'RELATIVE_PATH_BASE' => '/libraries/backend/Data/examples',
'RELATIVE_PATH_APP' => '/libraries/backend/Data',
'RELATIVE_PATH_LIBRARY' => '/libraries/backend/Data/vendor',
'RELATIVE_PATH_HELPERS' => '/libraries/backend/Data/examples',
'RELATIVE_PATH_TEMPLATE' => '/libraries/backend/Data/examples/templates',
'RELATIVE_PATH_CONFIG' => '/libraries/backend/Data/examples/config',
'RELATIVE_PATH_PAGES' => '/libraries/backend/Data/examples/pages',
'RELATIVE_PATH_ASSET' => '/libraries/backend/Data/examples/assets',
'RELATIVE_PATH_ASSET_IMG' => '/libraries/backend/Data/examples/assets/img',
'RELATIVE_PATH_ASSET_CSS' => '/libraries/backend/Data/examples/assets/css',
'RELATIVE_PATH_ASSET_JS' => '/libraries/backend/Data/examples/assets/js',
'LOCAL_PATH_BASE' => '/var/www/libraries/backend/Data/examples',
'LOCAL_PATH_APP' => '/var/www/libraries/backend/Data',
'LOCAL_PATH_LIBRARY' => '/var/www/libraries/backend/Data/vendor',
'LOCAL_PATH_HELPERS' => '/var/www/libraries/backend/Data/examples',
'LOCAL_PATH_TEMPLATE' => '/var/www/libraries/backend/Data/examples/templates',
'LOCAL_PATH_CONFIG' => '/var/www/libraries/backend/Data/examples/config',
'LOCAL_PATH_PAGES' => '/var/www/libraries/backend/Data/examples/pages',
'LOCAL_PATH_ASSET' => '/var/www/libraries/backend/Data/examples/assets',
'LOCAL_PATH_ASSET_IMG' => '/var/www/libraries/backend/Data/examples/assets/img',
'LOCAL_PATH_ASSET_CSS' => '/var/www/libraries/backend/Data/examples/assets/css',
'LOCAL_PATH_ASSET_JS' => '/var/www/libraries/backend/Data/examples/assets/js',
'HTTP_PATH_BASE' => 'localhost:8888/libraries/backend/Data/examples',
'HTTP_PATH_APP' => 'localhost:8888/libraries/backend/Data',
'HTTP_PATH_LIBRARY' => false,
'HTTP_PATH_HELPERS' => false,
'HTTP_PATH_TEMPLATE' => false,
'HTTP_PATH_CONFIG' => false,
'HTTP_PATH_PAGES' => false,
'HTTP_PATH_ASSET' => 'localhost:8888/libraries/backend/Data/examples/assets',
'HTTP_PATH_ASSET_IMG' => 'localhost:8888/libraries/backend/Data/examples/assets/img',
'HTTP_PATH_ASSET_CSS' => 'localhost:8888/libraries/backend/Data/examples/assets/css',
'HTTP_PATH_ASSET_JS' => 'localhost:8888/libraries/backend/Data/examples/assets/js',
'REQUEST_QUERY' => false,
'REQUEST_METHOD' => 'GET',
'REQUEST_STATUS' => false,
'REQUEST_PROTOCOL' => 'http://',
'REQUEST_PATH' => '/',
'REQUEST_PATH_STRIP_QUERY' => '/',
'PRODUCTION' => false,
'PAGE_PATH_DEFAULT' => '/index',
'PAGE_PATH' => '/index',
)
'dirname के उपयोग (__FILE __) 'या' __DIR__' यह है कि फ़ाइल शामिल होने पर भी यह वर्तमान स्क्रिप्ट की निर्देशिका वापस कर देगी। यदि आपके पास एक फ़ाइल है जिसमें dir/script.php शामिल है, तो डिफ़ॉल्ट शामिल है script.php में पथ रूट होगा और dir/नहीं होगा। – Kokos
@ फ्रैंक विला: * क्या आप एक कॉन्फ़िगरेशन फ़ाइल सेट करते हैं जिसमें रूट पथ है और वहां से जाना है? * ** हाँ ** –
मैं इस पर बहुत बुरा हूं, लेकिन मुझे लगता है कि विचार उन दोनों को मिश्रण करना है। बु फ़ाइल में मुख्य स्क्रिप्ट और सापेक्ष-पथ के लिए पूर्ण पथ जोड़ना और स्क्रिप्ट में उपयोग किया जाता है। बेशक, आप सापेक्ष-पथ घोषणा में कुछ भी बदले बिना किसी भी सापेक्ष पथ का उपयोग करके फ़ाइलों को कभी भी स्थानांतरित नहीं कर सकते हैं। – OptimusCrime