2009-11-01 12 views
9

मैं एक ट्यूटोरियल में आया हूं (अगर मैं जोड़ सकता हूं तो सम्मानित एक) जहां समापन PHP टैग ?> छोड़ा गया था। इसने मुझे पिछले ट्यूटोरियल की याद दिला दी जहां लेखक ने कहा कि यह टैग को बंद करने के लिए वास्तव में नहीं है, लेकिन यह क्यों समझाया नहीं गया। मैं थोड़ा आश्चर्यचकित हूं, मैंने सोचा कि यह टैग बंद करने के लिए बेहतर अभ्यास था। इसे बंद करना बेहतर क्यों नहीं है और यह हमेशा समय या विशेष मामलों में है।जब कोई php फ़ाइल बंद न करें?

उत्तर

17

क्योंकि अंतिम समापन टैग के बाद कोई भी व्हाइटस्क्रिप्ट स्क्रिप्ट को चुपचाप विफल कर सकता है, या ब्राउज़र में अवांछित आउटपुट भेजने का कारण बन सकता है। के रूप में एक आवेदन डेवलपर्स के लिए अभ्यास सिफारिश की मदद करने के लिए ऐसी स्थितियों से बचने के जेडएफ का उपयोग कर इस तरह के Zend फ्रेमवर्क के रूप में कुछ व्यवस्थाएं omitting the final closing टैग को शामिल किया है, और एक आवश्यकता उनके कोडन मानकों के अनुसार के रूप में:

फ़ाइलों को शामिल करने के लिए केवल PHP कोड, समापन टैग ("?>") कभी भी अनुमत नहीं है। PHP, द्वारा इसकी आवश्यकता नहीं है और इसे छोड़कर प्रतिक्रिया में सफेद स्थान के पीछे आकस्मिक इंजेक्शन को रोकता है।

यह कहा गया है कि, बंद टैग को छोड़ना एक समस्या के लिए बहुत अधिक कामकाज है जिसके लिए मूल कारण अभी तक नहीं सुलझाया गया है। This blog post वही कहते हैं।

+1

यह PHP में क्यों होता है, इस व्यवहार को डिफ़ॉल्ट रखने के पीछे तर्क क्या है? – Omar

+0

कुछ एफ़टीपी क्लाइंट फ़ाइलों के अंत में खाली नई लाइनों को सम्मिलित करते हैं, जहां तक ​​मुझे पता है। समापन टैग को छोड़कर आपको इस कारणों से अप्रत्याशित परिणामों से रोका जाएगा। – pestaa

4

ठीक है, अगर आपके पास config.php जैसी फ़ाइल शामिल है और आप इसे किसी भी वर्ण को आउटपुट नहीं करना चाहते हैं क्योंकि इसका मतलब यह नहीं है कि आप "हेडर पहले से भेजे गए" को ट्रिगर नहीं करना चाहते हैं तो आप समापन टैग छोड़ सकते हैं यह सुनिश्चित करने के लिए कि ब्राउजर पर कोई व्हाइटस्पेस नहीं भेजा गया है। आपको उन फ़ाइलों को मिलेगा जो शुद्ध PHP हैं और आउटपुट करने के लिए कोई भी सामग्री नहीं है, आमतौर पर एक समापन टैग शामिल नहीं होगा।

निचली पंक्ति यह है कि आप किसी भी शीर्षलेख सेट होने से पहले सामग्री को इंजेक्ट करना चाहते हैं। यह here गहराई में बात की जाती है।

2

अन्य महान उत्तरों के अलावा, मुझे यह ध्यान रखना होगा कि यह अभ्यास मुख्य रूप से उन फ़ाइलों में उपयोग किया जाता है जिनमें केवल PHP कोड होता है।

टेम्पलेट्स/विचारों को संपादित करते समय मैं हमेशा अंतिम टैग बंद करता हूं, इसलिए मुझे उस बिंदु के नीचे अन्य सामग्री जोड़ने की आवश्यकता नहीं है।

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