我使用的是那种html模板:
Hello {{username}}, my email is {{email}} and my age is {{age}}
({{变量}}的数量是动态的)
我想自动解析模板,并用它们的php变量内容替换所有{{变量}}
例如:
$username="Peter"; $email="myemail";$age=20;
所以它应该呈现为:
$res = render("template.html", array("username"=>$username, email=>$email, age=>$age));
你好,彼得;我的电子邮件是myemail,我的年龄是20岁
你可以这样做:
function render($template, $vars) {
$template = file_get_contents($template);
$search = [];
$replace = [];
foreach ($vars as $key => $value) {
$search[] = '{{'.$key.'}}';
$replace[] = $value;
}
return str_replace($search, $replace, $template);
}
尽管如果你想要更多的复杂性,你应该使用像Handlebars:这样的东西
https://github.com/zordius/lightncandy
https://github.com/XaminProject/handlebars.php
etc
试试这个。
function render($template,$values){
$data=file_get_contents('templates/'.$templates); //templates/ is just templates path. you can change it.
foreach ($values as $key => $value) {
$data=str_replace('{{'.$key.'}}', $value, $data);
}
return $data;
}