2011-09-05 11 views
10

जहां तक ​​मुझे पता है, php's getcwd() (और इसी तरह के फ़ंक्शन जैसे dirname(__FILE__)) को निष्पादित फ़ाइल की वर्तमान निर्देशिका को वापस करना होगा।php getcwd() वर्तमान निर्देशिका के बजाय सिम्लिंक के लक्ष्य को हल करने

वर्तमान निर्देशिका एक और निर्देशिका में एक सिमलिंक, php (संभवतः अपाचे के साथ) का होना करने के लिए होता है 'निर्देशिका' आप में हैं के रूप में सिमलिंक नाम दिखा पथ पर लौटने के लिए माना जाता है।

उदाहरण :

from /var/www, 
directory 'one' contains index.php 
symlink 'two' points at directory 'one' 

one/index.php: <?php echo getcwd(); ?> 

एक ब्राउज़र में पहुँचना http://localhost/two/index.php/var/www/one को दर्शाता है।

मैं इसे /var/www/two

किसी को भी अगर यह एक php या अपाचे सेटिंग मैं बदल सकते हैं पता है दिखाने के लिए उम्मीद करेंगे? या मैं इस तरह से सिम्लिंक का उपयोग करने में असमर्थ हूं?

+1

का उपयोग करके प्राप्त कर सकते हैं क्या आप इसे समझते हैं? मुझे इस प्रयोग के मामले में दिलचस्पी है। – kalenjordan

+0

अपाचे को symLinks का पालन करने के लिए कॉन्फ़िगर किया गया है? 'विकल्प FollowSymLinks' –

+0

की तरह मुझे नहीं लगता कि अपाचे के साथ इसका कोई संबंध नहीं है। यह एक PHP "सुविधा" है। यदि आप इसे कमांड लाइन 'mkdir a पर दर्ज करते हैं; एलएन-एस एक बी; php -r 'chdir ("बी"); echo getcwd(); '', php आपको दिखाएगा कि आप' ए 'नामक निर्देशिका में हैं, भले ही आप chdir() ed' b 'में संपादित करें। – edam

उत्तर

8

ठीक है इसे समझ लिया। ब्राउज़र पर $_SERVER['SCRIPT_FILENAME'] का उपयोग करें। कमांड लाइन पर, आप वर्तमान सिम्लिंकेड निर्देशिका exec("pwd")

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

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