2011-11-04 10 views
11

मैं एक फ़ाइल शामिल करने की कोशिश कर रहा हूं, और फ़ाइल को मौजूद नहीं है/खोला नहीं जा सकता है। मैंने सोचा होगा कि एक साधारण प्रयास/पकड़ने का बयान काम करता होगा लेकिन PHP पूरी तरह से इसे अनदेखा करता है, और त्रुटि देता है।PHP असफल असफल

कोई विचार? मुझे पता है कि इस तरह के अन्य प्रश्न स्टैक ओवरफ्लो पर हैं, मैंने उन्हें देखा है, लेकिन उनमें से कोई भी उचित, कामकाजी उत्तर नहीं लगता है।

उत्तर

23

आप वापसी मान की जाँच कर सकते के देखने के लिए शामिल हैं अगर यह विफल रहा है या नहीं:

if((@include $filename) === false) 
{ 
    // handle error 
} 

आप ध्यान दें हूँ मैं त्रुटि दमन ऑपरेटर (@) प्रदर्शित होने से मानक त्रुटि संदेश को छिपाने के लिए शामिल थे।

+2

एक बहुत ही गंदा समाधान का उपयोग @ है – Nicolas

+8

मैं @ का उपयोग कर लगता है, त्रुटि नियंत्रण ऑपरेटर यदि आप त्रुटि को संभालने, बिल्कुल ठीक है। यह सुनिश्चित करता है कि गंदा में असफल त्रुटि शामिल नहीं है अगर कॉन्फ़िगरेशन की ऐसी चेतावनियां चालू होंगी। – drew010

+0

हाँ, सटीक कारण यह है कि मैं यह करना चाहता हूं त्रुटि को संभालने में सक्षम होना;) –

4

include()false विफल होने पर false लौटाता है, बस जांचें कि यह सच है या नहीं और फिर die() जैसे कुछ करें या कोई त्रुटि दिखाएं।

if (!include('page.php')) 
    die('Error.'); 
+3

यदि आप 'मर' पर जा रहे हैं, तो आप बस [आवश्यकता] का उपयोग कर सकते हैं (http://php.net/ मैनुअल/en/function.require.php) हालांकि। –

+0

हाँ, अच्छा बिंदु। – Simone

+0

यह अभी भी PHP चेतावनी दिखाता है। –