使用PHP自动创建和“另存为”文本文件

时间:2014-03-10 11:04:15

标签: php text-files

所以,我试图从数据库中导出一些数据并让它自动提示用户保存数据有一个文本文件。这是我的代码:

$dateFile = rand(10000000, 99999999).".txt";
$dataString = "My data here blah blah blah";
$fWrite = fopen($dateFile,"w");
$wrote = fwrite($fWrite, $dataString);
fclose($fWrite);
header('Content-Type: application/text');
header('Content-Disposition: attachment; filename="'.$dateFile);

这似乎在很小的方面起作用 - 实际上,文本文件是在同一目录(如PHP页面)中创建的,文件似乎打开了......但是没有数据。如果我导航到文本文件并打开它,那么我可以在那里看到我的字符串。它不会自动打开文件。我做错了什么?

编辑:FWIW我实际上并不需要将文件保存到服务器本身,我只是认为这是一种快速简便的方法来获取“另存为”文本文件创建...如果有人能想到这样做而不保存任何东西到服务器,那也很好。

3 个答案:

答案 0 :(得分:1)

您是否尝试过直接发送内容?

header('Content-Type: application/text');
header('Content-Disposition: attachment; filename="'.$dateFile.'"');
echo $dataString;

这可能是一种简单的方法,但可能是您需要的解决方案。

答案 1 :(得分:0)

试试这个:

$dateFile = rand(10000000, 99999999).".txt";
$dataString = "My data here blah blah blah";
file_put_contents($dateFile,$dataString) 
header('Content-Type: application/text');
header('Content-Disposition: attachment; filename="'.$dateFile);
echo file_get_contents($dateFile);

答案 2 :(得分:-1)

你必须调用[Flush] [1]方法将缓冲区写入文件:

Greetz