php:如何用变量值替换所有字符串值



我使用的是那种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;
}

最新更新