2

我正在尝试通过 php 创建一个空白的 html 文件。我写了一些代码,但似乎不起作用。这是我的代码:

            $filename = 'test.html';        
    header("Cache-Control: public");
    header("Content-Description: File Transfer");       
    header("Content-Disposition: attachment; filename=$filename");
    header("Content-Type: application/octet-stream; ");
    header("Content-Transfer-Encoding: binary");

当我单击将创建此文件的链接时,它给了我一个 html 文件,但是当我看到源代码时,它显示了我请求该页面的源代码。

有什么理由为什么这行不通吗?另外,什么更快?每次用户询问时生成一个 html 文件,还是只提取一个创建的空文件并在用户询问时重命名它?谢谢!

4

4 回答 4

12

您可能需要使用 fopen 函数:

$file = fopen("test.html", 'w') or die("can't open file");
fclose($file);

这应该在与执行代码的 .php 文件相同的路径中创建一个名为 test.html 的文件

于 2012-05-10T04:07:59.243 回答
2

发送标头后退出以停止输出更多数据。这也将停止执行您的 PHP 脚本:

$filename = 'test.html';        
header("Cache-Control: public");
header("Content-Description: File Transfer");       
header("Content-Disposition: attachment; filename=$filename");
header("Content-Type: application/octet-stream; ");
header("Content-Transfer-Encoding: binary");
exit();
于 2012-05-10T04:06:37.200 回答
1

对于那些像我在 PHP 中创建一个完全空的文件一样偶然发现这个问题的人,一个非常简短的解决方案是执行以下操作:

file_put_contents('test.html', '');

您可以简单地将它们链接到该文件,以回答 OP 的问题。

于 2021-02-08T18:10:05.807 回答
0

我已经看到了大多数投票的答案,但对我个人而言,这段代码效果更好。

file_put_contents('test.html', '');

我相信你可以尝试这个来完美利用静态文件,比如 sitemap.xml 等等......

于 2021-09-01T13:48:28.900 回答