分解字符串,然后分析变量的分隔符


Explode string then parse delimiter for a variable

如果我有一个字符串,比如:

$string = "the year is currently <!--CODE echo date('Y'); CODE-->, it's been a good year."

在上面的字符串中,<!--CODECODE-->是分隔符,分隔符之间的所有内容都断章取义,形成一个字符串。然后再次将其内爆在一起,但删除了分隔符,并将eval()应用于从分隔符中生成的字符串。

据推测,我应该使用爆炸和内爆来分割和连接字符串,但我不知道如何定义和解析变量的分隔符,正如我所描述的那样。

如果有人能帮我做这件事,我真的很感激,谢谢你。

编辑:也许我应该清楚一件事$上面例子中的字符串是一个包含HTML的数据库条目,这个HTML会被回显给最终用户,但在此之前,我想处理上面提到的HTML注释的数据库条目并相应地解析其中的PHP代码。我不能简单地将PHP存储在数据库中,因为它要么在所有人都可见的文档中得到响应,要么HTML注释嵌入在文档中。我想解析包含PHP代码的HTML注释的数据库条目,这样我就可以分离字符串,并对包含PHP码的字符串使用eval()。

类似:

$string = "the year is currently <!--CODE return date('Y'); CODE-->, it's been a good year.";
$string = preg_replace_callback('/<!--CODE(.*?)CODE-->/',
    function($groups) { return eval($groups[1]); },
    $string);
echo $string; // displays: "the year is currently 2014, it's been a good year."

请注意,我在嵌入代码中将"echo"更改为"return"。如果您确实需要使用echo,则需要使用输出缓冲将其输出捕获到字符串中。