-1

我见过系统使用您%{variable_name}%在文本中输入的方法(比如说存储在数据库中或发送大量电子邮件),当页面加载时,它会找到%{variable_name}并用另一段代码/字符串替换它。

例如,在向邮件列表发送大量电子邮件时:Hello %{name}%,这是一封电子邮件......当点击提交时,它会发送电子邮件,除了它将是......“你好 John Doe,这是一封电子邮件”......

我搜索了谷歌并找不到它,因为我也不知道它叫什么。我刚刚在代码中看到了这一点,我目前正在编写一个非常有用的代码。

如果有人能告诉我它叫什么,要搜索什么,或者一个如何实现它的例子,那就太好了。

(如果我把错误的标签放在这里,请改成正确的)

4

4 回答 4

2

我成功地使用了这种方法:

 $message = str_replace('[NAME]', $name, $message);

因此,[NAME]例如,大量电子邮件被替换为$name

如果您更喜欢您所拥有的语法,则将%{NAME}%其替换为 by 的内容$name

$message = str_replace('%{NAME}%', $name, $message);

您可以根据需要多次重做,例如您要添加特定链接和电子邮件地址:

$message = str_replace('%{NAME}%', $name, $message);
$message = str_replace('%{LINK}%', $link, $message);
$message = str_replace('%{EMAIL}%', $email, $message);

参考: http: //php.net/manual/en/function.str-replace.php

于 2013-04-18T20:21:36.267 回答
2

您可以使用 str_replace: http: //php.net/manual/en/function.str-replace.php

    <?php
        $string = "Your %variable_name% sentence..";
        $new_string = str_replace("%variable_name%", "beautiful", $string>");
    ?>
于 2013-04-18T20:30:30.073 回答
1

我为你写了一个类:

class templatevars{
    private static $vars=array();
    public static function set($var,$val){
        self::$vars["%{".$var."}%"]=$val;
    }
    public static function replace($text){
        return str_replace(array_keys(self::$vars),array_values(self::$vars),$text);
    }
}

用法:

templatevars::set("varname","text to insert");
templatevars::set("varname2","other text to insert");
echo templatevars::replace("First: %{varname}% Second: %{varname2}%");

如果您想要多个替换器,请从类中删除所有静态分类器,并且:

$replacer_1=new templatevars();
$replacer_1->set("var","text");
$result=$replacer_1->replace($text_source);
于 2013-04-18T20:35:20.890 回答
0

在 PHP.net 上找到了这个

str_replace

于 2013-04-18T20:29:55.577 回答