php – 如何导出动态生成的临时csv文件?

前端之家收集整理的这篇文章主要介绍了php – 如何导出动态生成的临时csv文件?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想通过查询数据库生成带有数据的csv文件.然后浏览器应提示用户下载文件.问题是,readfile函数需要一个文件名而不是句柄,但我找不到一个函数获取这个临时文件文件名.
我想有更好的方法可以做到这一点,但我找不到它们.
  1. $handle = tmpfile();
  2. fputcsv($handle,array('year','month','product','count'));
  3. header('Content-Type: application/csv');
  4. header('Content-Disposition:attachment;filename=LS_export');
  5. echo readfile($handle);
  6. fclose($handle);
  7. exit();
您正在寻找 rewind文件指针重置为文件的开头,然后是 fpassthru输出文件的所有内容.
  1. rewind($handle);
  2. fpassthru($handle);

另一种解决方案是使用tempnam生成一个唯一的文件,该文件关闭时不会被删除.完成后,请不要忘记手动将其删除.

  1. $name = tempnam('/tmp','csv');
  2. $handle = fopen($name,'w');
  3. ...
  4. fclose($handle);
  5. readfile($name);
  6. unlink($name);

猜你在找的PHP相关文章