php - PHP:从 PHP 生成 HTML 文件
问题描述
我目前正在尝试从 PHP 文件生成 HTML 文件。所以计划是遍历目录,从 PHP 文件中读取内容并从中生成一个 HTML 文件:
foreach ( glob( $template_root_path . '*.php' ) as $email ) {
$email_content = readfile( $email );
}
我现在如何制作 .html 文件?我需要执行 PHP 代码,因此 HTML 文件只包含执行 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);
}
更多信息:程序执行函数
推荐阅读
- python - 如何使用 python 访问 Gerrit Rest API
- php - 当我尝试使用 set_error_handler 时,Laravel 出现 unserialize() 错误
- pdf - 如何在 PowerBuilder 中动态创建 PDF 文档?
- javascript - jQuery:c.replace 不是函数
- azure-active-directory - 如何获取已登录用户的 Azure AD objectid?
- pcf - PCF 在非工作时间自动删除和启动应用程序
- android - Sqlite 数据库在 Samsung Android Oreo 8.0 设备中无法正常运行
- apache-spark - 资源报价如何与 mesos 一起用于 Spark 流应用程序?
- java - 验证某些密钥是否存在于放心响应中,而不需要对响应进行 n 次迭代
- c++14 - 想知道 const char* ptr 是否会导致任何内存泄漏,