我已经建立了一个自定义的电子邮件模板。并分配了一些变量,{#paid_amount}
依此类推。
所有变量都被替换,但是paid_amount
没有达到预期。我已替换为以下内容:
// Text file with HTML markups
$template = file_get_contents($template_url);
$paid_amount = '$1.00';
$pattern = array(
'/\{\#user_name\}/i',
'/\{\#paid_amount\}/i',
'/\{\#duration\}/i' );
$replacement = array(
$user_name,
$paid_amount,
$duration );
$new_template = preg_replace($pattern, $replacement, $template);
它会打印.00
电子邮件中的金额,如果我$
从金额中删除符号,则会打印1.00
。我在Gmail中进行了测试。有人遇到过吗?
即使我尝试了$
但没有用。谁能告诉我我错过了什么或为什么它不起作用?
您需要转义美元符号:
$paid_amount = '\$1.00';
这是因为,preg_replace()
使用$
在替换参数,以解决捕获组的内容。
例:
$string = ">> hello <<";
$pattern = "/>> ([^ ]*) <</";
echo preg_replace($pattern, '$1', $string);
在上面的示例中,$1
处理第一个捕获组的内容:([^ ]*)
->“ hello”。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句