2009-02-23 10 views

उत्तर

46

./वर्तमान निर्देशिका है। यह काफी हद तक file.php जैसा ही है, लेकिन कई मामलों में (यह एक शामिल है) यह किसी भी मानक स्थान की जांच नहीं करता है, PHP एक फ़ाइल की तलाश कर सकता है, इसके बजाय केवल वर्तमान निर्देशिका की जांच कर रहा है।

PHP documentation से (अंतिम वाक्य नोटिस):

फ़ाइलें शामिल करने के लिए पहले वर्तमान कार्यशील निर्देशिका के लिए प्रत्येक include_path प्रविष्टि सापेक्ष में लिए देखा जाता है, और फिर वर्तमान स्क्रिप्ट निर्देशिका में। जैसे यदि आपकी include_path लाइब्रेरी है, तो वर्तमान कार्यशील निर्देशिका/www/है, आपने/a.php शामिल किया है और उस फ़ाइल में "b.php" शामिल है, b.php पहले/www/पुस्तकालयों में/या फिर/www// शामिल हैं। अगर फ़ाइल नाम ./ या ../ से शुरू होता है, तो यह केवल वर्तमान कार्यशील निर्देशिका में देखा जाता है।

+1

तो, आवश्यकता ("./file.php"); आवश्यकता से तेज़ है ("file.php"); ? – webelizer

8

पहले संस्करण आंतरिक तंत्र बलों को अपेक्षाकृत फ़ाइलों को शामिल करने ... सीधे निष्पादित फाइल उदाहरण के लिए आपके पास

index.php

// directly executed script (php -f index.php or from a browser) 
include 'second.php'; 

second.php

// This is included relatively to index.php 
// Actually, it is first searched relatively to include_path, then relatively 
// to index.php 
include './third.php'; 

third.php

// This is included relatively to second.php ONLY. It does not search 
// include_path 
return "foo"; 
+1

क्या आपके पास इसके लिए कोई सबूत (मैनुअल) है? –

+0

मुझे कुछ गलतियां थीं जिन्हें मैंने अभी सही किया है, खोज का क्रम गलत था। प्रमाण मेरे ऊपर का जवाब है। –

0

यह स्पष्ट रूप से वर्तमान निर्देशिका का नामकरण कर रहा है।

4

बस आप वर्तमान निर्देशिका में फ़ाइल को शामिल करने के लिए PHP को बता रहे हैं केवल या फ़ाइल मौजूद नहीं है तो विफल हो।

यदि आप "indexcommon3.php" प्रारूप का उपयोग करते हैं और फ़ाइल मौजूद नहीं है तो php इसे include_path सिस्टम चर में खोजेगा।

संदर्भ के लिए आप http://www.php.net/manual/en/function.include.php

6

लघु उत्तर

आप सही हैं, यह एक निर्देशिका नहीं है का उपयोग कर सकते हैं। ए । उस निर्देशिका को संदर्भित करता है जिसमें आप हैं, और .. मूल निर्देशिका को संदर्भित करता है।

अर्थ, ./file.php और file.php PHP में कार्यात्मक रूप से समकक्ष हैं।यहाँ प्रलेखन के प्रासंगिक पृष्ठ है: http://us.php.net/manual/en/wrappers.file.php

लंबे समय तक उत्तर

हालांकि, सिर्फ इसलिए कि वे इस संदर्भ में एक ही काम करते हैं इसका मतलब यह नहीं है कि वे हमेशा एक ही कर रहे हैं।

जब आप एक * निक्स शैल वातावरण में परिचालन कर रहे हैं, और आप निष्पादन योग्य फ़ाइल का नाम टाइप करते हैं, तो खोल PATH निर्देशिकाओं में दिखाई देगी, लेकिन यह सीडब्ल्यूडी, या निर्देशिका में दिखाई नहीं देगी, में वर्तमान में पुन:

इसलिए, यदि आप एक निर्देशिका एक फ़ाइल कहा जाता है कि में कर रहे हैं:। myprogram.php (यह एक PHP CLI फ़ाइल होगा) और तुम सिर्फ टाइप करें:

myprogram.php

यह कोई फर्क नहीं पड़ता कि आपका प्रोग्राम निष्पादन योग्य है या नहीं। शेल आपकी फ़ाइल के लिए/bin /,/usr/bin/etc में दिखेगा, लेकिन यह आपकी साइट में नहीं देखेगा। /, या निर्देशिका में आप देखेंगे।

अपनी निर्देशिका को जोड़ने के बिना उस प्रोग्राम को निष्पादित करने के लिए पथ, आप तो सच में टाइप करने के लिए

./myprogram

की जरूरत है, ./ अधिक स्पष्ट है। इसका मतलब है, "जिस फ़ाइल को आप ढूंढ रहे हैं वह ठीक है" और नहीं ./ मतलब है, "फाइल कहीं भी फाइलों की तलाश में प्रोग्राम होना चाहिए"।

4

डॉट-स्लैश फ़ाइल को केवल मौजूदा निर्देशिका में पाया जाता है, बजाय add_path सेटिंग में उल्लिखित पथों को अतिरिक्त रूप से खोजना।

संबंधित मुद्दे