混合PHP/HTML文件的ob_get_contents()的替代方法

混合PHP/HTML文件的ob_get_contents()的替代方法,php,html,parsing,ob-get-contents,Php,Html,Parsing,Ob Get Contents,我试图解析一个混合HTML/PHP文件(viewfile.PHP),使用以下代码将其输出到HTML电子邮件中: <?php //define variables and objects to be used in the view ... ob_start(); include 'viewfile.php'; $email_content=ob_get_contents(); ob_end_clean(); send_email($email_conten

我试图解析一个混合HTML/PHP文件(viewfile.PHP),使用以下代码将其输出到HTML电子邮件中:

<?php  
  //define variables and objects to be used in the view
   ...
  ob_start();
  include 'viewfile.php';
  $email_content=ob_get_contents();
  ob_end_clean();
  send_email($email_content);
?>

要包含的viewfile.php看起来像这样:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="en-US">
<head>
<meta charset="UTF-8">
</head>
<body>
    <p>Dear <?= $name ?>,</p>

    <p>You've purchased the following items:</p>
    <?php foreach ($items as $i){?>
    <p><?= $i['name'] ?><br/>
    <?php if (isset($i['item_options'])) foreach ($i['item_options'] as $io) {?>
        <?= $functions->option_name($io['option']).': '.$functions->option_value($io['value']) ?><br/>
    <?php }
    }?></p>
    <p>Best wishes</p>
</body>
</html>

亲爱的

您已购买以下物品:



祝福

不幸的是,我的webhost没有输出缓冲。因此,函数ob_start();ob_get_contents();和ob_end_clean();不要工作

是否有其他方法将文件读入变量并解析其中的所有PHP。 我使用的是PHP5.4


非常感谢您的帮助。

您是否尝试在PHP中构建内容?我知道它没有这个干净,但应该工作Hi kingkero,谢谢你的答复。我不完全确定你的意思。手动解析它?php是一个通常在浏览器中查看的文件。为此,定义变量并包含文件非常有效。然而,我也想通过电子邮件发送相同的内容。通常,我会使用ob_get_内容将浏览器输出重定向到变量。不幸的是,这在这台服务器上是不可能的。如果我用PHP而不是这个视图文件构建内容,我会有两个外观截然不同的相同内容表示。