创建并;另存为;使用PHP自动生成文本文件

创建并;另存为;使用PHP自动生成文本文件,php,text-files,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: ap

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

$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我实际上不需要将文件保存到服务器本身,我只是认为这将是一种快速而简单的方式来创建“另存为”文本文件。。。如果有人能想出一种不将任何内容保存到服务器的方法,那也很好。

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

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

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

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


试试这个:

$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);

事实上太棒了!非常感谢。正是我想要的。:)乐意帮助:)如果您认为正确,请将其标记为正确答案;-)