将一个.php文件转换为.html文件?

4
我有一个包含多个查询的.php文件,我想要将输出文件作为.html文件...
有没有什么方法可以做到这一点?我目前是通过使用浏览器保存执行PHP文件的方式来保存为.html文件。但是当我启动我的产品时,客户端不应该出现这种情况。
请提供一种方法,谢谢。
6个回答

15

这是一个示例代码:

<?php

ob_start();

// your PHP / HTML code here

file_put_contents('where/to/save/generated.html', ob_get_clean());

?>

这是最简单的答案,但当我编码时,我总是喜欢将所有输出推送到一个数组中,并在需要时将其合并。这样可以让我更灵活地放置它,而且当您需要缓冲到用户的页面非常大时,您始终可以使用implode和flush。 - TravisO
这个回答有点不够充分。原帖作者要求将他的PHP文件保存为.html文件。这个回答做到了,但同时也删除了当前的输出缓冲区(这可能不是原帖作者想要的)。如果这不是期望的效果,另一个选择是按照这里的示例操作:http://php.net/manual/en/function.ob-get-contents.php - Xofo

4

我不确定我是否正确理解了这个问题。
但是你可以通过命令行从php生成html文件:

php index.php > index.html

2
另一种选择是使用Apache的mod_rewrite或IIS的等效功能,从浏览器角度重写您的URL。这不需要进行任何编码更改,确保已安装Apache扩展,并将以下内容添加到根Web目录的.htaccess文件中:
RewriteEngine on
RewriteBase /
RewriteRule ^([^/]*)\.html$ $1.php?%{QUERY_STRING} [NC]

1

你可以使用输出缓冲(ob_start等)然后在脚本结束时将缓冲区的内容写入文件


1
如果您提供了代码示例,您将获得更多的分数。 - Gerrit

0

你需要的是this(this)吗?

如果这些不是选项,你总可以使用curl命令访问该页面,前提是它正在运行在Web服务器上。


0

看起来你想保存一个动态网站的静态版本。像WinHTTrack这样的工具非常方便。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接