मैं विंडोज़ पर कल्पना PHP विस्तार स्थापित करने की कोशिश कर रहा हूं। यह PHP 5.2, PHP 5.3 पर काम कर रहा था लेकिन मुझे PHP 5.4 के साथ समस्याएं हैं।इमेजिक PHP 5.4 एक्सटेंशन सापेक्ष पथों के साथ काम नहीं करता है। (विंडोज़)
इमेजिक संस्करण: ImageMagick-6.7.6-3-Q16-windows-dll। मॉड्यूल काम कर रहा है। मैं phpinfo() में कल्पना देख सकते हैं।
समस्या यह है कि कल्पना फाइलों के सापेक्ष पथ को पहचानती नहीं है। उदाहरण के लिए, अगर मैं एक ही फ़ोल्डर में सरल index.php और a.jpg है, मैं $im = new imagick('a.jpg');
उपयोग नहीं कर सकते, क्योंकि मैं अपवाद:
Fatal error: Uncaught exception 'ImagickException' with message 'unable to open image `a.jpg': No such file or directory @ error/blob.c/OpenBlob/2614' in D:\Web\i\index.php:3 Stack trace: #0 D:\Web\i\index.php(3): Imagick->__construct('a.jpg') #1 {main} thrown in D:\Web\i\index.php on line 3
लेकिन जब मैं निरपेक्ष पथ $im = new imagick('D:\web\i\a.jpg');
का उपयोग यह है काम कर रहे।
मुझे पता चला कि Imagick संदर्भ के रूप में अपाचे कोर डीआईआर का उपयोग कर रहा है। मैंने पथ के बिना छवि को सहेजा:
$ im-> लिखें छवि ('यह-क्या-क्या-im-looking-for.jpg');
और मैं यह सी में पाया: \ Program Files (x86) \ Apache24 \ इस-है-क्या-आईएम दिखने-for.jpg
समस्या है, कि मेरे सभी पुराने लिपियों हैं सापेक्ष पथ के साथ लिखा है और मैं उनका उपयोग कर गिनती करना चाहता हूं।
मुझे नहीं पता, अगर समस्या स्वयं कल्पना में है, या कहीं PHP 5.4 में है।
अग्रिम धन्यवाद
अपने प्रश्न क्या है? क्या आप '$ _SERVER ['DOCUMENT_ROOT']' का उपयोग नहीं कर सकते? –
क्या यह केवल इमेजिक समस्या है? क्या आप 'echo __DIR__'' कर सकते हैं और जांच सकते हैं कि यह आपकी कार्यशील निर्देशिका नहीं है? –
बेन: मेरा सवाल यह है कि, वर्तमान निर्देशिका (डी: \ वेब \ i) को अपाचे रूट निर्देशिका (सी: \ प्रोग्राम फ़ाइलें (x86) \ Apache24 \) के बजाय कार्यशील निर्देशिका के रूप में उपयोग करने के लिए कल्पना कैसे करें (जैसा कि यह काम कर रहा था पुराने PHP संस्करण) –