替代ob_get_contents()用于混合PHP / HTML文件

时间:2014-06-03 16:27:30

标签: 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_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没有output_buffering。那么,函数ob_start(); ob_get_contents();和ob_end_clean();不工作。

还有其他方法可以将文件读入变量并解析其中的所有PHP。 我使用的是PHP 5.4。

非常感谢你的帮助。

0 个答案:

没有答案