fopen

2010-03-18 6 views
15

मैं fopen उपयोग कर रहा हूँ पर विस्तृत त्रुटि एक फ़ाइलfopen

$fh = fopen($path, 'r') or die('Could not open file'); 

से पढ़ने के लिए अब मैं contantly त्रुटि सका फ़ाइल नहीं खोली जा मिलता है। मैंने फ़ाइल पथ की जांच की और फ़ाइल की अनुमतियों को 777 तक बदल दिया। क्या कोई तरीका है कि मुझे एक विस्तृत त्रुटि रिपोर्ट मिल सकती है क्योंकि फ़ाइल mysql_error() के समान क्यों नहीं खोली जा सकती है?

उत्तर

24

त्रुटि रिपोर्टिंग चालू करें, या, उत्पादन वातावरण में (PHP 5.2.0 से आगे) में आपको error_get_last() का उपयोग करने में भी सक्षम होना चाहिए।

+0

ओह, मिल \ _last \ _error() ... कि $ php \ _errormsg की तुलना में बेहतर है। इस समारोह के पक्ष में मेरा जवाब हटाना। – VolkerK

+2

इसे हटाने की कोई आवश्यकता नहीं है। वह एक परियोजना पर हो सकता है (जैसा कि मैं वर्तमान में हूं) जिसमें केवल 5.1 है! – webbiedave

+0

आश्वस्त ...... – VolkerK

3

हां।
PHP में आपके लिए विस्तृत त्रुटि संदेश है।
आपको बस इसे चालू करना होगा।

स्क्रीन पर dislay करने के लिए स्क्रिप्ट के शीर्ष पर इन 2 पंक्तियां जोड़ें:

ini_set('display_errors',1); 
error_reporting(E_ALL); 

या आप चाहते हैं, तो यह, बजाय लॉग इन करने की

ini_set('log_errors',1); 
ini_set('display_errors',0); 
error_reporting(E_ALL); 

यह भी ध्यान रखें मरने का उपयोग कर कि() बहुत बुरा अभ्यास है।

12

5.2 से पहले PHP संस्करणों के लिए (error_get_last() की कमी) आप track_errors का उपयोग कर सकते हैं।

ini_set('track_errors', 1); 
$fh = fopen('lalala', 'r'); 
if (!$fh) { 
    echo 'fopen failed. reason: ', $php_errormsg; 
} 

यह भी देखें: http://de.php.net/reserved.variables.phperrormsg

+1

+1 पूर्व 5.2 इंस्टॉलेशन अभी भी आसपास हैं। अच्छा, यह नहीं पता था! –

+1

+1 फिर से - track_errors ini var के बारे में नहीं पता था, यह आसान है :-) – richsage

0
$fh = fopen($path, 'r') or die (error_get_last()); 
संबंधित मुद्दे