Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
HTML邮件中的PHP代码_Php_Html_Phpmailer - Fatal编程技术网

HTML邮件中的PHP代码

HTML邮件中的PHP代码,php,html,phpmailer,Php,Html,Phpmailer,我正在开发一个用于管理收件人组和要发送的多个内容的应用程序 我想使用不同的html设计,所以我将它保存在一个表中,其中包含一些PHP代码 但问题是,当使用这些HTML内容发送邮件时,我并没有执行PHP代码 我正在使用PHPMailer发送邮件,并使用addslashes保存HTML内容,然后使用stripslashes返回 谢谢 使用addslashes保存HTML内容并返回 条纹斜杠 那太糟糕了。我不知道你为什么这么做,但如果你的目的是为了逃避查询,使用DB驱动程序的解析函数(或使用参数化查询

我正在开发一个用于管理收件人组和要发送的多个内容的应用程序

我想使用不同的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); }