用php函数替换模板中的占位符
简洁明了。我不擅长正则表达式,因为我从来不懂它。但是当你看到这个简单的模板时,你会说有可能用php方括号+添加函数方括号替换它的%%+内容,如下所示: 模板:用php函数替换模板中的占位符,php,regex,replace,Php,Regex,Replace,简洁明了。我不擅长正则表达式,因为我从来不懂它。但是当你看到这个简单的模板时,你会说有可能用php方括号+添加函数方括号替换它的%%+内容,如下所示: 模板: <html> <head> <title>%getTitle%</title> </head> <body> <div class='mainStream'> %getLatestPostsByDate% </
<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的最佳在线资源之一,有时甚至是问题现成解决方案的来源。:)