首页 > 解决方案 > PHP:从 PHP 生成 HTML 文件

问题描述

我目前正在尝试从 PHP 文件生成 HTML 文件。所以计划是遍历目录,从 PHP 文件中读取内容并从中生成一个 HTML 文件:

foreach ( glob( $template_root_path . '*.php' ) as $email ) {
    $email_content = readfile( $email );
}

我现在如何制作 .html 文件?我需要执行 PHP 代码,因此 HTML 文件只包含执行 PHP 文件的结果。不知道如何处理。

标签: php

解决方案


你有几个选择。

0. 改变你的架构

你的代码片段看起来非常危险,在我看来是一个糟糕的架构——你是在生成那些 PHP 文件吗?为什么你不能有$email_content直接构建的功能?你可以使用模板引擎吗?

但是,如果您没有其他选择并且您确定 PHP 文件是安全的(即没有用户内容):

1.输出缓冲

仅当您的电子邮件不包含敏感数据时才使用此选项,因为包含的 PHP 文件中的错误编程可能会导致打算给一个客户的信息泄漏到另一个客户的电子邮件中(假设您正在向多个客户发送电子邮件) .

<?php
foreach (glob($template_root_path . '*.php') as $email) {
  ob_start();
  include $email;
  $email_content = ob_get_clean();
}

更多信息:输出控制功能

2. 打电话php

另一个将您的调用脚本与包含的 PHP 文件隔离开的选项是运行该php命令。请注意,您将无法访问特定于 HTTP 的全局变量和函数。

<?php
foreach (glob($template_root_path . '*.php') as $email) {
  $email_content = shell_exec('php ' . $email);
}

更多信息:程序执行函数


推荐阅读