2010-12-06 36 views
36

更新#1下载创建一个文本文件,即时

什么已经张贴下面是当场就因为它让输出文件。它所做的是输出字符串数据,然后是HTML格式的其余部分。有没有什么办法可以阻止放入文件的内容以及刚刚显示给浏览器的内容。

更新#2

只需添加exit()和一切工作正常。谢谢!

EOU

嗨,

我一直环顾四周,看到了一些东西相似但不完全得到什么,我需要做全面完成任务的把握。

目前我有一个表格,用户提供一些细节。在提交时将其发布回自己并处理POST变量。我有一个预先制作的HTML网页模板,可以将信息放入其中,只需执行str_replace即可正常工作。

我现在要做的是将它作为下载文件导出到纯文本文件中。因此,最终结果是用户单击表单上的提交,然后他们打开一个下载弹出窗口,将修改的网页作为.txt文件打开。

据我了解,我需要做一些使用HTTP头部功能的东西。究竟是什么来达到我想要的我不确定。我只希望该文件可用一次,但我认为它必须存储在某个地方初始为用户下载,然后需要手动清理。

任何帮助或点都会很棒!谢谢。

回答

18

结账this SO question's accepted solution。用basename($File)替换您自己的文件名并将文件大小($ File)更改为strlen($your_string)。 (您可能需要使用mb_strlen以防万一字符串包含多字节字符。)

+9

+1,避免重复,参考其他SO尽可能提出问题。 – 2010-12-06 22:59:38

58

无需存储任何地方。只需输出适当内容类型的内容即可。

<?php 
    header('Content-type: text/plain'); 
?>Hello, world. 

如果您希望触发下载提示,请添加内容处置。

header('Content-Disposition: attachment; filename="default-filename.txt"'); 
22

使用下面的代码来生成飞文件..

<? //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; 
?> 
+1

对我来说,它总是带来网站的源代码,而不是$ content – 2015-12-16 03:34:08

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; 
?> 
+2

这与其他答案一样http://stackoverflow.com/a/16440501/2743307 – bibi 2016-03-04 17:53:31