在PHP内部包含带有确定变量的HTML代码

时间:2019-05-12 12:27:35

标签: php html

我有一个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,例如文本

3 个答案:

答案 0 :(得分:3)

您可以为此使用strtr。例如:

<?php

$a = 'Hi this is {name}. I am writing {language}';

echo strtr($a, ['{name}' => 'Abhishek', '{language}' => 'php']);

Strtr

答案 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文件中。