आप वास्तव में ऐसा नहीं करना चाहिए, लेकिन अगर आप पूरी तरह से करने के लिए है, तो आप इसे इस वर्ग का उपयोग करके कर सकते हैं:
class PhpStringParser
{
protected $variables;
public function __construct($variables = array())
{
$this->variables = $variables;
}
protected function eval_block($matches)
{
if(is_array($this->variables) && count($this->variables))
{
foreach($this->variables as $var_name => $var_value)
{
$$var_name = $var_value;
}
}
$eval_end = '';
if($matches[1] == '<?=' || $matches[1] == '<?php=')
{
if($matches[2][count($matches[2]-1)] !== ';')
{
$eval_end = ';';
}
}
$return_block = '';
eval('$return_block = ' . $matches[2] . $eval_end);
return $return_block;
}
public function parse($string)
{
return preg_replace_callback('/(\<\?=|\<\?php=|\<\?php)(.*?)\?\>/', array(&$this, 'eval_block'), $string);
}
}
इसे इस तरह कॉल करें:
$p = new PhpStringParser();
echo $p->parse($string);
स्रोत: http://www.php.net/manual/en/function.eval.php#108091
हाँ प्रस्तुति और तर्क अलग रखना है। ऐसा करने से यह संकेत मिलेगा कि आप अपने डिज़ाइन विकल्पों पर पुनर्विचार करना चाहेंगे। – dm03514
जिस तरह से आप अपनी साइट का निर्माण कर रहे हैं, मैं आपको अभी बता सकता हूं कि यह लाइन के नीचे समस्याएं पैदा करेगा। यहां मेरा सुझाव दिया गया है: टेम्पलेट्स और कोड को अलग करने के लिए Smarty, या इसी तरह का उपयोग करें। – Hassan
ऐसा लगता है कि आपने वास्तव में ** वास्तव में ** खराब डिज़ाइन निर्णय लिया है। – PeeHaa