PHP I / O内存流在文档

时间:2016-03-02 16:09:56

标签: php memory stream

我是php的新手,我对你有疑问。 现在,我正在创建一个我想要使用的PHP脚本:

$file = fopen('php://memory','w');

然后,我使用fputcsv添加几个数组来填充此文档。 在最后一部分,我说我想要下载链接

header('Content-Type: application/csv');
header('Content-Disposition: attachment; filename="service.csv"');

我的方法如下:

public function exportToCsv($Id){
  $file = fopen('php://memory','w');

  $someDetails = $this->some_model->getSomeDetail($Id);

  $details = array(
    array("Subject", "Start Date", "Start Time", "End Date", "End Time", "Where"),
    array("test subject","test date","test time","test end date","etc..."));
  foreach ($details as $detail) {
      fputcsv($file, $detail);
  }
  fseek($file,0);
  header('Content-Type: application/csv');
  header('Content-Disposition: attachment; filename="file.csv"');
  fpassthru($file);}

当我的浏览器下载这个文件时,当我打开它时,一切都很棒,但是在文件的开头,有一个空行,我不明白它为什么会发生,我怎么能删除这一行。

感谢您的描述。

马立克

1 个答案:

答案 0 :(得分:2)

1)您应该检查PHP标签(<?php ?>

之前是否有空白行/空格

2)尝试在ob_end_clean();之前添加fpassthru($file);,这将清除缓冲区,并且您确定其中没有任何内容。