我试图渲染一个php文件然后将其作为html返回以发送电子邮件,我将如何进行此操作?以下是我使用的代码示例:
public function setPHP($php)
{
ob_start();
$phpsend = ( include $php );
$this->html = (string) ob_get_contents();
ob_end_clean();
}
以下是我调用该函数的方法。
$php = file_get_contents( NHM_PLUGIN_DIR . 'assets/templates/newhomesguide.php' );
$css = file_get_contents( NHM_PLUGIN_DIR . 'assets/css/email_template.css' );
$cssToInlineStyles->setPHP($php);
$cssToInlineStyles->setCSS($css);
我试图通过Tijs Verkoyen修改CSSToInlineStyles,它用html内联css,我只是尝试做同样的事情但是使用了具有功能的php文件。
答案 0 :(得分:1)
我认为你非常接近。我就是这样做的。评估的文件将在$this->html
中,并且在评估后将立即发送到输出流。
public function setPHP($php)
{
if(!file_exists($php)) // Some error handling here maybe?
die('File ' . $php . ' DNE');
// Eval the $php file and store it in a variable
ob_start();
include $php;
$this->html = ob_get_clean();
// Send the evaluated file to the output stream
echo $this->html;
}