2012-10-05 9 views
5

fopen documentation के अनुसार फ़ाइल नहीं बनाता है, कुछ मोड में यह फ़ाइल बनायेगा यदि यह अस्तित्व में नहीं है, लेकिन मेरी स्थिति में, मैंने सभी 'w', 'w +', x 'और' x + 'मोड लेकिन यह सिर्फ मुझ पर चेतावनी फेंक रहा है और यह फ़ाइल नहीं बना सकता है।PHP fopen()

यह मेरा कोड है:

$this->handle = fopen($this->log_name, 'w'); 

और मैं क्या मिलेगा:

Warning: fopen(D:\xampp\htdocs\farid\logs\error.php) [function.fopen]: failed to open stream: No such file or directory in D:\xampp\htdocs\farid\libraries\error\log.php on line 34 
Warning: fwrite() expects parameter 1 to be resource, boolean given in D:\xampp\htdocs\farid\libraries\error\log.php on line 66 
Warning: fclose() expects parameter 1 to be resource, boolean given in D:\xampp\htdocs\farid\libraries\error\log.php on line 27 

और मैं खिड़कियों के माहौल में काम कर रहा हूँ।

+2

क्या निर्देशिकाएं मौजूद हैं? – aynber

+2

फ़ाइल अनुमतियां सबसे स्पष्ट संदिग्ध –

+1

एक ही प्रलेखन से - "यदि PHP ने तय किया है कि फ़ाइल नाम स्थानीय फ़ाइल निर्दिष्ट करता है, तो वह उस फ़ाइल पर एक स्ट्रीम खोलने का प्रयास करेगा। फ़ाइल को PHP तक पहुंच योग्य होना चाहिए, इसलिए आपको सुनिश्चित करें कि फ़ाइल एक्सेस अनुमतियां इस पहुंच की अनुमति देती हैं। अगर आपने सुरक्षित मोड सक्षम किया है, या open_basedir आगे प्रतिबंध लागू हो सकते हैं। " –

उत्तर

9

जांचें कि लॉगफाइल का पथ मौजूद है या नहीं, यह एक फ़ाइल बनाता है, निर्देशिका नहीं।

यह भी जांचें कि क्या उपयोगकर्ता, xampp चलाता है, आपके पास निर्दिष्ट फ़ोल्डर तक पहुंच है।

+0

आपकी मदद के लिए धन्यवाद, मेरी निर्देशिका में एक गलती थी। अब यह फाइल बना रहा है। क्या कोई रास्ता है इसलिए मैं फ़ोल्डर भी बना सकता हूं अगर यह मेरे फ्यूक्शन में मौजूद नहीं था? –

+1

देखें http://php.net/manual/en/function.mkdir.php तर्क अनुभाग को "रिकर्सिव" के लिए देखें, सबसे पहले आपको यह जांचना होगा कि फ़ाइल मौजूद है या नहीं, 'realpath' और' file_exists' हो सकता है उपयोगी –

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