我想在流程结束时发送一些电子邮件,html模板保存在一个带有{var}的数据库中(括号用变量替换)。 在一个页面上,从数据库中获取模板,并使用preg_replace函数替换括号和$,最后使用eval的函数,但这不起作用。
//Variables
$var1= 'testo';
$var2= 'testo';
$var3= 'testo';
$var4= 'testo';
$var5= 'testo';
$email_template = mysqli_query($conn, "SELECT * FROM email_template WHERE email_type = 'nuova_prenotazione'");
$email_Data = mysqli_fetch_array($email_template);
$title = $email_Data['email_subject'];
$message = $email_Data['email_message'];
$pattern = '/{(\w+)}/i';$replacement = "$$1";
$str = preg_replace($pattern, $replacement, $message );
eval("\$str = \"$str\";");
echo $str;
preg_replace函数工作正常,但变量保持$ var,那么eval函数不起作用。