更新#1
下面发布的内容是让它输出文件。它正在做的是输出字符串数据,然后输出其余的表单HTML。有没有办法阻止放入文件的内容以及刚刚显示给浏览器的内容。
更新#2
刚刚添加exit()
,一切正常。谢谢!
EOU
您好,
我一直在环顾四周,看到一些类似的事情,但并没有完全掌握我需要做些什么才能完全完成任务。
目前我有一个用户提供一些细节的表单。在提交时,它会回发给自己并处理POST变量。我有一个预制的HTML网页模板,可以放入信息,只需要做一个str_replace就可以正常工作。
我现在要做的是将其作为下载导出到纯文本文档中的用户。因此,最终结果是用户单击表单上的提交,然后打开下载弹出窗口,将修改后的网页作为.txt文件。
据我所知,我需要使用HTTPs头功能做一些事情。究竟要实现我想要的东西我不确定。我只希望文件可用一次,但我认为它必须存储在某个地方,供用户下载,然后需要在手动后进行清理?
任何帮助或积分都会很棒!感谢。
答案 0 :(得分:68)
无需将其存放在任何地方。只需输出具有适当内容类型的内容。
<?php
header('Content-type: text/plain');
?>Hello, world.
如果您希望触发下载提示,请添加内容处置。
header('Content-Disposition: attachment; filename="default-filename.txt"');
答案 1 :(得分:27)
使用以下代码即时生成文件..
<? //Generate text file on the fly
header("Content-type: text/plain");
header("Content-Disposition: attachment; filename=savethis.txt");
// do your Db stuff here to get the content into $content
print "This is some text...\n";
print $content;
?>
答案 2 :(得分:19)
结帐this SO question's accepted solution。用basename($File)
替换您自己的文件名,并将文件大小($ File)更改为strlen($your_string)
。 (如果字符串包含多字节字符,您可能需要使用mb_strlen。)
答案 3 :(得分:0)
<?php
header('Content-type: text/plain');
header('Content-Disposition: attachment;
filename="<name for the created file>"');
/*
assign file content to a PHP Variable $content
*/
echo $content;
?>