मैं एक ऐसा फ़ंक्शन बनाने की कोशिश कर रहा हूं जो PHP कोड को पार्स करेगा और परिणाम को शुद्ध टेक्स्ट में वापस कर देगा, जैसे कि इसे ब्राउज़र में पढ़ा जा रहा था। यह एक तरह:

public function PHPToText($data, $php_text) {
    //TODO code
    return $text; 
}

मैं इस तरह के फ़ंक्शन को कॉल करूंगा, जो आप नीचे देख रहे हैं:

$data = array('email' => 'test@so.com');
$string = "<?= " . '$data' . "['email']" . "?>";

$text = $this->PHPToText($data, $string);

अब echo $text देना चाहिए: test@so.com

कोई विचार या कार्य जो इसे अच्छी तरह से प्राप्त कर सकता है?

धन्यवाद!

php
0
luqita 5 अक्टूबर 2011, 19:55
1
मुझे यह समझने में परेशानी हो रही है कि फ़ंक्शन को क्या करना चाहिए..
 – 
amosrivera
5 अक्टूबर 2011, 19:57
मैंने eval() के बुरे को याद रखने के लिए सभी उत्तरों को वोट दिया है, हालांकि इसका उपयोग करने से डरो मत। बस ध्यान रखें कि आप क्या विकसित कर रहे हैं। बेशक सीधे उपयोगकर्ता इनपुट eval न करें, लेकिन फिर भी इसका इस्तेमाल करें। सभी PHP फ़ंक्शंस के पास होने का एक कारण है।
 – 
Elzo Valugi
5 अक्टूबर 2011, 20:02
Php कोड ब्राउज़र द्वारा कभी नहीं पढ़ा जाता है, सर्वर सब कुछ करता है।
 – 
Zirak
5 अक्टूबर 2011, 20:07

3 जवाब

सबसे बढ़िया उत्तर

यह एक बुरा बुरा बुरा बुरा विचार है, लेकिन मूल रूप से:

function PHPToText($data, $string) {
    ob_start();
    eval($string);
    return ob_get_clean();
}

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

4
Marc B 5 अक्टूबर 2011, 19:58

इस मामले में इसे eval() के साथ किया जाना चाहिए

लेकिन हमेशा याद रखें: eval बुराई है!

4
Stephan 5 अक्टूबर 2011, 19:57

आपको eval() फ़ंक्शन का उपयोग करने की आवश्यकता होगी http://www.php.net/eval अपने वैरिएबल $string के अंदर टैग को पार्स करने के लिए

2
Ben Swinburne 5 अक्टूबर 2011, 19:58