将找到替换%{variable_name}%的PHP脚本

时间:2013-04-18 20:18:30

标签: php variables

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

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

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

如果有人可以告诉我它的名称,要搜索的内容,或者如何实现它的示例,那就太棒了。

(如果我在其中添加了错误的标签,请更改为正确的标签)

4 个答案:

答案 0 :(得分:2)

我成功使用了这种方法:

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

因此,例如[NAME]群发电子邮件会被$name的内容替换

如果您更喜欢自己的语法,则%{NAME}%的内容会被$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

答案 1 :(得分: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>");
    ?>

答案 2 :(得分: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);

答案 3 :(得分:0)

在PHP.net上找到这个

str_replace