2012-09-03 46 views
0

我有用户注册后发送的确认电子邮件。现在,我希望管理员能够自定义此电子邮件,更改内容。等等(不想硬编码)如何在PHP电子邮件模板中包含简码

但这里的问题是与我将生成的激活链接。我认为我可以将电子邮件内容保存在数据库中。问题在于我必须添加到电子邮件中的动态元素,例如激活链接,网站名称等。

最好的方法是用这个,我想我会添加所谓的'shortcode',就像wordpress一样。这是什么蓝图,以及如何整合它?

回答

3

你可以通过使用简单的基于搜索的模板系统来解决它&替换;下面以一个简短的例子介绍了一个非常基本的例子。希望它可以帮助你:)

class EmailTemplate 
{ 
     private $body; 

     public function __construct($template) 
     { 
       $this->body = $template; 
     } 

     public function render($context) 
     { 
       return preg_replace_callback('/%{(.*?)}%/', function($v) use ($context) { 
         return isset($context[$v[1]]) ? $context[$v[1]] : ''; 
       }, $this->body); 
     } 
} 

$tpl = new EmailTemplate(<<<EOM 
Hello %{user}%, 

How are you doing. This is your link: 

%{link}% 

See ya! 

EOM 
); 

echo $tpl->render(array(
     'user' => 'world', 
     'link' => 'http://www.php.net/', 
)); 
+0

非常好,谢谢你:) –