【问题标题】:What is difference between creating a file with fopen and generating file with headers使用 fopen 创建文件和生成带有标题的文件有什么区别
【发布时间】:2011-04-27 02:23:15
【问题描述】:

一种方式 我正在使用 fopen("test.xls") 创建一个 xls。

使用 fwrite 我写 xls 和 readfile 给我文件。

第二种方式

我用 put 生成 xls

 header('Cache-Control: no-store, no-cache, must-revalidate');     // HTTP/1.1
    header('Cache-Control: pre-check=0, post-check=0, max-age=0');    // HTTP/1.1
    header ("Pragma: no-cache");
    header("Expires: 0");
    header('Content-Transfer-Encoding: none');
    header("Content-Disposition: attachment; filename=\"test.xls\""); 
    header("Content-Type: application/vnd.ms-excel");

foreach ()

{

echo contents to the file

}

这两种生成文件的方式有什么区别吗?

有什么区别。

【问题讨论】:

  • 第二种方式是什么?它似乎没有输出任何数据。还有第一个里面的readfile有什么用?
  • 在第二个示例中,您并没有真正生成文件,是吗?
  • 对不起 .. 现在我编辑代码,将标题放入 foreach 循环后,我将内容写入文件
  • @zod 你想知道什么?你想知道标题有什么用吗?
  • 我想知道的事情与 quetion 有点不同 :(。我使用 fopen 创建 .xls。如何将内容写入该 .xls 以将其保留为纯 xls 文件。如果我写制表符分隔值,它在 2003 年工作正常,但在 2007 年显示不受支持的类型警报消息。所以我可以使用 PHP 将内容写入 .xls 文件而不使用像 PHExcel 这样的类。

标签: php excel


【解决方案1】:

您的第一种方法是在服务器文件系统中创建文件,然后通过浏览器提供它。该文件将保留在那里(除非您之后有额外的代码将其删除)。

您的第二种方法似乎不会在文件系统中创建实际文件,它会即时生成数据 - 然后浏览器将其保存到文件中。

这就是你要问的吗?

【讨论】:

  • 是的,这就是我要问的。但是我想问两种方式生成的文件的格式或内部是否有任何差异,或者它们将是相同的?
  • 没有。您在问题中提供的代码不会影响您正在创建的数据 - 区别仅在于您提供数据的方式。如果您得到不同的结果,则错误在其他地方 - 在您未显示的代码中。
猜你喜欢
  • 2011-03-05
  • 2013-04-29
  • 2020-06-13
  • 2014-04-27
  • 2010-11-12
  • 2010-11-10
  • 1970-01-01
  • 2020-08-19
  • 2011-05-22
相关资源
最近更新 更多