HTML邮件中的PHP代码
我正在开发一个用于管理收件人组和要发送的多个内容的应用程序 我想使用不同的html设计,所以我将它保存在一个表中,其中包含一些PHP代码 但问题是,当使用这些HTML内容发送邮件时,我并没有执行PHP代码 我正在使用PHPMailer发送邮件,并使用addslashes保存HTML内容,然后使用stripslashes返回 谢谢 使用addslashes保存HTML内容并返回 条纹斜杠 那太糟糕了。我不知道你为什么这么做,但如果你的目的是为了逃避查询,使用DB驱动程序的解析函数(或使用参数化查询)。HTML邮件中的PHP代码,php,html,phpmailer,Php,Html,Phpmailer,我正在开发一个用于管理收件人组和要发送的多个内容的应用程序 我想使用不同的html设计,所以我将它保存在一个表中,其中包含一些PHP代码 但问题是,当使用这些HTML内容发送邮件时,我并没有执行PHP代码 我正在使用PHPMailer发送邮件,并使用addslashes保存HTML内容,然后使用stripslashes返回 谢谢 使用addslashes保存HTML内容并返回 条纹斜杠 那太糟糕了。我不知道你为什么这么做,但如果你的目的是为了逃避查询,使用DB驱动程序的解析函数(或使用参数化查询
如果你的目的是,我不知道,清理html?那没用。因此,无需出于任何原因在此处添加斜杠 但问题是,我在发送时并没有执行PHP代码 使用这些HTML内容发送邮件 因为您的内容是以字符串形式返回的,所以PHP将以字符串形式读取它,包括标记 一个最肮脏的解决方案,和高度劝阻的,用于评估php代码并让其执行。但这是非常危险的,可能会导致严重的安全问题,所以我甚至不打算向您展示一些示例:) 最佳解决方案是使用某种模板系统。我不建议使用Smarty或其他成熟的模板引擎,但您可以推出一个简单的自定义代码解析器,它可以按照以下思路工作: 您可以使用占位符保存变量,如
{{variable_text}} {{recipient}} {{address}}
或者类似的事情。您只需替换所需内容,因此在读取此电子邮件的PHP脚本中,您可以像
$change = array('recipient' => 'John Smith',
'address' => 'Unknown Avenue, 666',
'variable_text' => 'We are glad to invite you to');
$text = '<p>To: {{recipient}}.</p>
<p>Address: {{address}}.</p>
Message: Dear{{recipient}}<br />{{variable_text}}';
foreach($change as $k => $v)
{
$text = str_replace('{{'.$k.'}}', $v, $text);
}
$change=array('recipient'=>'John Smith',
“地址”=>“666号无名大道”,
“变量文本”=>“我们很高兴邀请您加入”);
$text='To:{{recipient}
地址:{{Address}
信息:亲爱的{{recipient}
{{variable_text}}};
foreach($k=>v)
{
$text=str_replace(“{{.$k.}}},$v,$text);
}