2011-12-08 7 views
5

जब मैं एक लंबी फ़ाइल पथ शामिल करने का प्रयास करता हूं तो PHP में लोड करने में विफल रहता है। एक छोटा रास्ता पथ ठीक काम करता है।PHP शामिल करें: लांग पथ समस्या

उदाहरण के लिए, निम्नलिखित असफल हो जायेगी:

../../contents/2010-St-Louis-Rams-Tickets-Season-Package-Includes-Tickets-For-All-Regular-Season-Home-Games/inc/title.inc 

किसी को भी किसी भी विचार जहां समस्या हो सकती है है?

+1

पथ गलत है? – alex

+0

कृपया अपना ओएस कॉन्फ़िगरेशन और सटीक PHP त्रुटि संदेश पोस्ट करें। यह एक सच्ची फ़ाइल हो सकती है जो त्रुटि या शायद एक अनुमति समस्या नहीं मिली है। यह संभावना नहीं है कि आपका ओएस फ़ाइल नाम की लंबाई सीमित कर रहा है। –

+0

कोड सही है क्योंकि एक ही कोड लिनक्स सर्वर पर एपैची के साथ काम कर रहा है, लेकिन हमने आईआईएस 7 के साथ लिनक्स सर्वर से विंडोज 2008 सर्वर पर साइट माइग्रेट की है। यह कोई त्रुटि या चेतावनी नहीं दिखाता है। – Imran2220

उत्तर

1

कृपया जांचें कि आपका पथ (ड्राइव नाम आदि सहित) 260 वर्णों से अधिक है या नहीं। क्योंकि यह विंडोज के लिए अधिकतम निर्देशिका लंबाई है। Click here to see the reference

संदर्भ में यह भी कहा गया है कि "\? \" के साथ पथ नाम तैयार करके अतिरिक्त लंबे पथ नाम बनाने की संभावना है। उसमें अधिकतम पथ लंबाई 32767 वर्णों का विस्तार करना चाहिए। लेकिन मुझे नहीं पता कि इसका उपयोग PHP के भीतर किया जा सकता है।

+2

मुझे इस उत्तर पर एक +1 दिखाई देता है, इसलिए मैं सोच रहा था कि कोई भी php के भीतर \\? \ वाक्यविन्यास का उपयोग कर सफल रहा है? व्यक्तिगत रूप से मैं इसे काम नहीं कर सका, लेकिन शायद मुझे कुछ याद आ रहा है? –

+0

हां, पूर्ववत \\? \ 'काम नहीं करता है। [यह] (http://www.serverphorums.com/read.php?7,627200) एक लंबे समय के बावजूद एक स्पष्टीकरण की तरह दिखता है। – XedinUnknown

+0

आप सही हैं। PHP में एक बग के कारण, लंबे पथ नाम काम नहीं करेंगे। यह [PHP 7.1 के साथ तय किया गया है] (https://github.com/php/php-src/blob/php-7.1.0RC4/NEWS#L763)। – Carsten

0

मैं एक सिम्फोनी 1.x परियोजना के साथ एक ही मुद्दा था जब परीक्षण लेखन कि कुछ इस तरह देखा:

require_once __DIR__ . '/../../../../bootstrap/unit.php'; 
require_once __DIR__ . '/../../../../../../../MY/LONG/PATH.php' 

यहाँ बात यह है कि उन /../../ .. एक बहुत ले चरित्र अंतरिक्ष का। मेरे मामले में अगर उन का उपयोग नहीं किया गया तो यह काम करेगा।

सिम्फोनी में आप के लिए बुला sfConfig :: ('sf_root_dir') मिल द्वारा परियोजना जड़ प्राप्त कर सकते हैं, और इस तरह मैं निम्नलिखित तरीके से मेरी कोड को बदल सकता है: (

require_once __DIR__ . '/../../../../bootstrap/unit.php'; 
require_once sfConfig::get('sf_root_dir') . '/MY/LONG/PATH.php' 

यह काम करता है में मेरी मामला) पूरी तरह से।

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

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