我想制作一个电子邮件模板以及如何替换方括号{}
和方括号{}
中的所有内容?
$template = "My name is {NAME}. I'm {AGE} years old.";
$template = preg_replace("{NAME}", "Tom", $template);
$template = preg_replace("{AGE}", "10", $template);
之后应该是这样的: 我叫汤姆。我10岁了。
答案 0 :(得分:5)
使用str_replace
代替preg_replace
:
$template = "My name is {NAME}. I'm {AGE} years old.";
$template = str_replace("{NAME}", "Tom", $template);
$template = str_replace("{AGE}", "10", $template);
答案 1 :(得分:1)
正则表达式模式应该在开头和结尾都有分隔符
$template = "My name is {NAME}. I'm {AGE} years old.";
$template = preg_replace("/{NAME}/", "Tom", $template);
echo $template = preg_replace("/{AGE}/", "10", $template);
答案 2 :(得分:1)
您可以将preg_replace()
与下面的单行一起使用(优于str_replace()
): -
$template = "My name is {NAME}. I'm {AGE} years old.";
$find = array('/{NAME}/', '/{AGE}/');
$replace = array('TOM', '10');
$template = preg_replace($find, $replace, $template);
echo $template;
输出: - https://eval.in/606528
注意: - 它有以下好处: -
<强> 1 即可。单行代码可以替换您想要的所有内容。不需要一次又一次str_replace()
。
<强> 2 即可。如果将来需要更多替换,那么您必须将它们添加到$find
和$replace
中,并将其添加到str_replace()
和<?php
$template = "My name is {NAME}. I'm {AGE} years old.";
$find = array('{NAME}', '{AGE}');
$replace = array('TOM', '10');
$template = str_replace($find, $replace, $template);
echo $template;
。所以它更灵活。
抱歉,我完全忘记提及<script>
System.config({
map: {
app: "/app",
rxjs: '/lib/rxjs' // added this map section<------
},
packages:{
app: { defaultJSExtensions:"js",},
rxjs: { defaultExtension: "js" } // and added this to packages
},
paths: {
'/app/*': '/app/*'
},
});
System.import("/app/main")
.then(null, console.error.bind(console));
也适用于数组,所以你也可以像下面这样做: -
vertical-align:top;
输出: - https://eval.in/606577
注意: - 两者都同样好。你可以去任何一个。感谢 强>
答案 3 :(得分:1)
preg_replace
不是正确的功能。在这种情况下,正确的选项是str_replace
或str_ireplace
。但是,对于要格式化的大量数据,使用正则表达式会更好:
$associative_formatter_array = array('NAME' => 'Tom', "AGE" => '10');
$template = "My name is {NAME}. I'm {AGE} years old.";
$template = preg_replace_callback("`\{([^\}]*)\}`g", function($match) {
return $_GLOBALS["associative_formatter_array"][$match[1]];
});