在PHP中导出CSV的最佳做法:输出缓冲区与临时文件 [英] Best practices to export CSV in PHP: output buffer vs temporary file

查看:283
本文介绍了在PHP中导出CSV的最佳做法:输出缓冲区与临时文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在返回任意数量行的数据库上执行SELECT,该行可能很少或很多(一百万以上),这些行需要放在带有第一行beeing标头的.csv文件中.

I execute a SELECT on a database that returns any number of rows, may be few or many (one million+), those rows need to go inside a .csv file with the first row beeing header.

我知道用PHP导出CSV文件的两种方法:使用输出缓冲区php://output或创建一个临时文件,将其提供给用户,然后删除.

I know two ways of exporting CSV files with PHP: using output buffer php://output or creating a temporary file, serve it to user, than delete it.

哪种方法比较好,知道它可能是一个很小的文件还是很大的一个文件?考虑PHP内存限制(在php.ini中),请求超时等.

Which way is better, knowing it may be a small file or a very big one? Consider PHP memory limit (in php.ini), request time out, etc.

推荐答案

这要视情况而定.

当您知道文件不是非常大并且下载不经常发生时,请使用输出缓冲区.

Use an output buffer when you know the file is not ridiculously large and when it is a download that doesn't occur to often.

当您拥有大型文件时,该文件将被大量下载(同时),将其写入文件中可能会减轻数据库和站点的负担.

When you have something large, that will be downloaded a large number of times (simultaneous), writing it to a file might be better to lighten the load on your database and site.

这篇关于在PHP中导出CSV的最佳做法:输出缓冲区与临时文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆