用PHP函数return替换PHP:FunctionName

时间:2013-10-01 03:14:36

标签: php string function replace

所以我得到的是一个存储在数据库中的页面,其中包含一些内容,然后是PHP函数load_users,然后是更多的内容。我需要做的是搜索从数据库中检索到的PHP字符串:FunctionName(每页不同),然后用函数return替换它。

让我们在数据库中说

    <h1>Online Users</h1>
    PHP:LoadOnline
    <p>Blah blah blah blah blah</p>

我希望能够搜索该PHP:并在其旁边获取函数名称,然后执行它并显示结果。这是可能的,还是我不得不想出其他的东西?

1 个答案:

答案 0 :(得分:1)

您可以使用preg_replace_callback

function printSomeText()
    {
    echo 'text';
    }

$template = "
 <h1>Online Users</h1>
    PHP:printSomeText sdf
    <p>Blah blah blah blah blah</p>";

echo preg_replace_callback(
    '/PHP\:([^\s]*)/', function ($matches)
        {
        $function = $matches[1];
        ob_start();
        $function();
        $return = ob_get_contents();
        ob_end_clean();
        return $return;
        }, $template
);

这种方式会“懒惰”。