PHP: Equivalent of include using eval -


यदि कोड एक जैसा है, तो इसमें अंतर है:

शामिल करें 'बाहरी.php';

और

eval ('? & Gt;। File_get_contents (' external.php ')।' & Lt;? Php ');

क्या अंतर है? क्या किसी को पता है?


मुझे पता है कि दोनों अलग हैं क्योंकि शामिल ठीक काम करता है और eval एक त्रुटि देता है जब मैं मूल रूप से सवाल पूछा, मुझे यकीन नहीं था कि क्या यह सभी कोड पर त्रुटि है या सिर्फ मेरा (और क्योंकि कोड eval ed था, यह पता लगाना बहुत मुश्किल था कि त्रुटि क्या है मतलब)। हालांकि, जवाब की खोज करने के बाद, यह पता चला है कि आपको त्रुटि मिलती है या नहीं, कोड पर external.php पर निर्भर नहीं होती है, लेकिन यह आपके php सेटिंग्स पर निर्भर करता है ( short_open_tag

कुछ और शोध के बाद मुझे पता चला कि खुद क्या गलत था समस्या यह है कि & lt;? Php एक "शॉर्ट ओपनिंग टैग" है और ऐसा केवल तभी होता है जब short_open_tag को 1 पर सेट किया जाता है (php.ini या कुछ में) एक ही प्रभाव के लिए) सही पूर्ण टैग ? Php है, जिसमें दूसरी पी के बाद एक स्थान है।

इस तरह के शामिल के उचित बराबर है:

  eval ('? & Gt;' file_get_contents ('external.php')। '& Lt;? Php');  

वैकल्पिक रूप से, आप उद्घाटन टैग को एक साथ सभी को छोड़ सकते हैं (जैसा कि नीचे दी गई टिप्पणियों में बताया गया है):

  eval ('??' File_get_contents ( 'external.php'));  

मेरा मूल समाधान एक अर्धविराम जोड़ना था, यह भी काम करता है, लेकिन यदि आप मुझसे पूछते हैं तो बहुत कम साफ दिखता है:

  eval ('? & Gt ; '। File_get_contents (' external.php ')।' & Lt;? Php; ');  

Comments

Popular posts from this blog

email - PHP mail error ... failed to open stream : permission denied -

c# - ListView onScroll event -

c - Linux mmap() error -