如何替换特定标记之间的代码并对其应用php eval

如何替换特定标记之间的代码并对其应用php eval,php,Php,我有一个从数据库调用内容的变量,示例如下 $content = '<div><h1>content here</h1> <img src = 'image.jpg' /><br /> [code]echo 'welcome';[/code] <h2>some content here</h2> <p> some large content here</p> [code]echo 'C

我有一个从数据库调用内容的变量,示例如下

$content = '<div><h1>content here</h1>
<img src = 'image.jpg' /><br />

[code]echo 'welcome';[/code]

<h2>some content here</h2>
<p> some large content here</p>

[code]echo 'Click Here';[/code]

Thank you.';

echo 'headers here' .$content . 'footers here';
$content='此处的内容

[代码]回应“欢迎”;[/code] 这里有一些内容 这里有一些大的内容

[代码]回显“单击此处”;[/code] 谢谢; 回显“此处的标题”。$content。“页脚在这里';
如何对[code]和[/code]标记之间的内容执行PHP?
剩下的文本将被写成html execpt在[code]一些php代码[/code]标签中使用的代码

如果这是为您的站点设计的模板类型系统,我建议您采用不同的方法

首先,您的上述代码将发生更改,以便代码之间的部分如下所示:

[code]{{msg}}}[/code]
现在,如果您愿意,您仍然可以将您的内容作为php代码存储在数据库中,但是在将其放入数据库之前对其进行评估更有意义,但我强烈建议使用查找/替换系统

现在,您需要一个函数来执行以下操作:

function output_template( $name, $data ) {
    $template_string = get_template_from_db( $name );
    for( $data as $k )
    {
        $template_string = str_replace( $k, $data[$k], $template_string );
    }
    return $template_string;
}

然后您可以回显此函数的返回值。如果您认为需要使用eval,请重新考虑您正在做的事情,尤其是对于似乎是模板系统的事情。

不要!但说真的,为什么要从数据库中评估代码?我会避免这种行为。或者我误解了这个问题-您是在尝试导入和评估PHP代码,还是只是将一些HTML转储到页面中?preg_replace()查找标记之间的内容,然后评估()不管是什么。不过我强烈建议不要这样做。