我正在制作一个带有电子邮件功能的系统,但我希望管理员可以使用管理面板更改这些电子邮件。我打算用ckeditor做这个,但我希望我可以添加标签,例如放置用户名。像这样:
Dear %%name%%,
Thank you for purchasing %%item%%.
Kind Regards,
%%business%%
谢谢!
答案 0 :(得分:0)
您的代码的一部分可能如下所示:
$text = <text from editor>
$tokens['name'] = 'Mr. Jones';
$tokens['item'] = 'left shoe';
$tokens['business'] = 'WalkThisWay';
// match anything between '%%' than's not a control chr or '%', min 3 and max 16 chrs.
if (preg_match_all('/%%[^[:cntrl:]%]{3,16}%%/',$text,$matches))
{
// replace all found tokens
foreach ($matches[0] as $match)
{
// get token
$tokenKey = trim($match,'%');
// replace
$text = str_replace($match,$tokens[$tokenKey],$text);
}
}
它寻找匹配的令牌并用真实内容替换它们。您仍然需要考虑如何获取$tokens
数组。