2012-01-31 14 views
7

मैं include_once(); पथ प्रारंभ निर्देशिका से शुरू करने के लिए एक रास्ता खोजने का प्रयास कर रहा हूं और फिर पथ ढूंढें। ../../../path/to/file के बजाय मेरे पास /path/to/file होगा। अगर मैं क्या करते हो कि /path/to/file यह ऐसी कोई फ़ाइल या निर्देशिका का कहना है, यहाँ मेरे प्रत्यक्ष कोडphp include_once path

<?php 
include_once("/assets/page_assets.php"); 
?> 
+2

'पथ शुरू से ही directory' वेबसर्वर की जड़? फ़ाइल सिस्टम की जड़ से पथ/पथ/से/फ़ाइल' है! – Cheery

उत्तर

12

आप एक अपाचे सर्वर है, तो है

<?php 
include_once($_SERVER['DOCUMENT_ROOT'] . "/assets/page_assets.php"); 
?> 

"/assets/page_assets.php" मतलब है from the root of the disk, के रूट फ़ोल्डर से नहीं सर्वर। यदि आप किसी अन्य beginning directory के बारे में बात कर रहे हैं तो भौतिक पथ (सर्वर की फ़ाइल सिस्टम में पथ, वेब पथ नहीं) को एक अलग निरंतर/परिवर्तनीय के रूप में परिभाषित करें और इसे ऊपर दिखाए गए अनुसार पथ में प्रीपेड करें।

0

chdir($_SERVER['DOCUMENT_ROOT']);

साथ अपनी स्क्रिप्ट शुरू अब आप include("path/to/file.php"); कॉल कर सकते हैं और यह webroot से देख शुरू कर देंगे।

1

ऐसा करने के लिए आपको रूट से पथ का उपयोग करना होगा। कुछ मामलों में यह /var/www/mysite.com/assets/page_assets.php जैसा दिख सकता है। उस पथ को खोजने का एक तरीका __FILE__ का उपयोग करना है (यह 2 आगे और पीछे दोनों अंडरस्कोर है)। यदि आप किसी फ़ाइल से इसे प्रतिबिंबित करते हैं, तो यह आपको पूरा पथ दिखाएगा। आपको सही पूर्ण पथ सेट करने के लिए इसका उपयोग करने में सक्षम होना चाहिए।

2

आप स्पष्ट रूप से पथ शामिल निर्दिष्ट कर सकते हैं:

<?php ini_set('include_path',ini_get('include_path').':../../../:'); ?> 

लेकिन जैसे हर्षित टिप्पणी में उल्लेख किया है, तो आप अग्रणी स्लैश के बिना अपने फ़ाइल शामिल करना चाहिए: शुरू से ही

<?php 
include_once("assets/page_assets.php"); 
?> 
संबंधित मुद्दे