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

用php函数替换模板中的占位符,php,regex,replace,Php,Regex,Replace,简洁明了。我不擅长正则表达式,因为我从来不懂它。但是当你看到这个简单的模板时,你会说有可能用php方括号+添加函数方括号替换它的%%+内容,如下所示: 模板: <html> <head> <title>%getTitle%</title> </head> <body> <div class='mainStream'> %getLatestPostsByDate% </

简洁明了。我不擅长正则表达式,因为我从来不懂它。但是当你看到这个简单的模板时,你会说有可能用php方括号+添加函数方括号替换它的%%+内容,如下所示:

模板:

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

%getTitle%
%getLatestPostsByDate%
应将其替换为:

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

这可能吗?如果是,如何进行?如果有人能得到一个很好的regEx教程,即使对于不太聪明的人也能解释,我会非常感激

提前谢谢。

试试这个

$html = str_replace ('%getLatestPostsByDate%', '<?php getLatestPostsByDate();?>', $html);
$html=str_replace(“%getLatestPostsByDate%”,“”,$html);

但是,如果您正在寻找通用解决方案,那么您必须使用regex,这可能是一个良好的开端。获取自定义标记之间的所有内容(%),并将其替换为php代码

正则表达式:
/%(\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);
$template=file\u get\u contents('template.php');
$re=“/%(\\w*?)%/”;
$subst=“”;
$result=preg_replace($re,$subst,$template);
文件内容('template.php',$result);

你可以使用str\u replace
我不擅长正则表达式,因为我从来都不懂它。
我不喜欢这句话。。。。也许你的意思是
,因为我懒得学它。
?谢谢你的链接:)我一定会学的,因为你每天都需要它,如果你在编码的话。不管我做这件事多久都不知道如何使用正则表达式。这太重要了。非常感谢大家!:)哥们,我爱你:>这似乎是我最好的解决方案,不像其他答案不好,它们也很好,但你的答案是最好的解释给我。非常感谢你。只是为了更具动态性的部分,我没有使用文件内容,而是使用了一个技巧,不操纵模板->评估(“?>”.$result.”Np,很高兴提供帮助。:)regex101可能是学习和实践regex的最佳在线资源之一,有时甚至是问题现成解决方案的来源。:)