所以我正在尝试做一个html邮件系统和我的html我想成为一个模板,存储在一个单独的文件中:
<div clas="headr"></div>
<div class="content"></div>
<div class="footer"></div>
当我想发送邮件时,我希望我的邮件内容(来自输入表单)进入div.content,然后发送整个html(模板+提交的文本)。 最好的方法是什么?我想的是:
但我不知道如何“找到”div并将提交的文本写入其中。
答案 0 :(得分:17)
正如Pekka所说,你可以简单地使用str_replace
在模板中插入数据。只需添加一个占位符:
<div clas="header"></div>
<div class="content">{{content}}</div>
<div class="footer"></div>
然后将占位符替换为您的内容:
$content = 'Whatever you want to insert...';
$tpl = file_get_contents('yourtemplate.html');
$tpl = str_replace('{{content}}', $content, $tpl);
mail($tpl, ...);
答案 1 :(得分:17)
您可以将PHP脚本放在模板中,然后让PHP自己进行渲染,例如:
template.html:
<div clas="headr"></div>
<div class="content"><?php echo $body; ?></div>
<div class="footer"></div>
然后在PHP代码中加载它:
$body = "Put this into the content tag...";
ob_start();
include("template.html");
$email = ob_get_clean();
编辑:在这种情况下,使用我的方法而不是简单替换可能有点过分,但是如果不是替换整个电子邮件消息,而是希望拥有更复杂的模板,那么很容易E.g:
<table>
<tr>
<td>Name:</td>
<td><?php echo $name; ?></td>
</tr>
<tr>
<td>Email:</td>
<td><?php echo $email; ?></td>
</tr>
</table>
它非常灵活,可以防止必须替换太多变量,更重要的是将html保留在代码之外。
答案 2 :(得分:2)
使用str_replace()将内容插入模板。
使用PHPMailer之类的类轻松发送HTML电子邮件。
答案 3 :(得分:1)
请找出the wide answer at Programmers.StackExchange,其中包含有关PHP电子邮件模板的方法。
简单的PHP解决方案可以是:
%placeholder%
替换机制:
str_replace
,preg_replace
(适用于array
替换)答案 4 :(得分:0)