我有一个PHP代码,可使用HTML模板发送电子邮件。 HTML模板具有一些PHP变量,例如Name,Email等。
<strong>Name: {name} </strong>
因为电子邮件模板包含更多代码,所以我将其包含在PHP文件中
$htmlInvoice = file_get_contents($_SERVER["DOCUMENT_ROOT"] .'/mail/invoice.html');
$name= $user['name']);
$msg = $htmlInvoice;
但是,当发送电子邮件时,它无法读取内部的变量
HTML文件。例如回声$name
,例如文本
答案 0 :(得分:3)
您可以为此使用strtr
。例如:
<?php
$a = 'Hi this is {name}. I am writing {language}';
echo strtr($a, ['{name}' => 'Abhishek', '{language}' => 'php']);
答案 1 :(得分:2)
您需要将{name}字符串替换为所需的输出。
$htmlInvoice = file_get_contents($_SERVER["DOCUMENT_ROOT"] .'/mail/invoice.html');
$name= $user['name']);
$msg = str_replace('{name}',$name, $htmlInvoice);
答案 2 :(得分:0)
您可以更改/mail/invoice.html以包含PHP命令。
<strong><? echo $user['name'] ?></strong>
然后
$htmlInvoice = file_get_contents($_SERVER["DOCUMENT_ROOT"] .'/mail/invoice.html');
$msg = _readphp_eval($htmlInvoice);
function _readphp_eval($code) {
ob_start();
print eval('?>'. $code);
$output = ob_get_contents();
ob_end_clean();
return $output;
}
我不知道是谁将_readphp_eval($ code)函数归因于...它在Internet上浮动,并且为此很好地工作。
这将要求$ user ['name']被定义/包含在invoice.html文件中。