用php函数替换模板中的占位符

时间:2015-09-21 12:41:57

标签: php regex replace

简短明了。我不擅长正则表达式,因为我从来不理解它。但是当你看到这个简单的模板时,你会说用%括号替换%% +它的内容+添加函数括号就像这样:

模板:

<html>
<head>
    <title>%getTitle%</title>
</head>
<body>
    <div class='mainStream'>
        %getLatestPostsByDate%
    </div>
</body>
</html>

它应该替换为:

<html>
<head>
    <title><?php getTitle();?></title>
</head>
<body>
    <div class='mainStream'>
        <?php getLatestPostsByDate();?>
    </div>
</body>
</html>

这可能吗?如果有,怎么样?如果有人为regEx提供了一个很好的教程,即使不是那么聪明的家伙也能解释它,我会非常感激。

提前致谢。

1 个答案:

答案 0 :(得分:2)

这可能是一个好的开始。获取自定义标记之间的所有内容(%%),并将其替换为php代码。

https://regex101.com/r/aC2hJ3/1

正则表达式:/%(\w*?)%/g。检查右侧(正确)的正则表达式的解释,并生成代码......它应该有帮助。

$template=file_get_contents('template.php');

    $re = "/%(\\w*?)%/"; 

    $subst = "<?php $1(); ?>"; 

    $result = preg_replace($re, $subst, $template);

file_put_contents('template.php',$result);