有效地在PHP中创建大型csv文件

pet*_*oak 0 php csv file

我必须使用PHP创建一个超过400 MB的大型csv导出文件.导出文件和PHP代码的初稿允许对性能进行一些猜测.

为了避免极长的处理时间,我应该专注于有效地创建导出文件并避免PHP array操作,因为它们在这种情况下太慢了."有效地创建文件"意味着:将大块文本附加到文件中的其他大块,每个大块都快速创建.

不幸的是,"大块"比线条更像是矩形.构建我的导出文件将从许多行开头开始,如下所示:

Title a, Title b, Title c \n
"2014",  "07",    "01" \n
"2014",  "07",    "02" \n
...
Run Code Online (Sandbox Code Playgroud)

然后我将不得不在行的右侧添加一个"矩形"文本:

Title a, Title b, Title c, extention 1, extention 2, extention 3 \n
"2014",  "07",    "01",    "23",        "1",         "null" \n
"2014",  "07",    "02",    "23",        "1",         "null" \n
...
Run Code Online (Sandbox Code Playgroud)

如果我必须逐行进行此操作,它将再次减慢我的速度.所以我希望有一种方法可以在文件中添加"矩形",就像在一些文本编辑器中一样.同样有用的是在PHP中使用大量文本缓冲区的具体体验,也可以工作.

因为它不是我的托管,我不确定我是否有权调用sed/akw.

所以问题是:从经验中可以获得如何有效处理PHP中的大csv文件(文件块操作,文件"矩形"操作)或者如何有效处理PHP中的大字符串缓冲区的建议?似乎没有字符串缓冲区的框架.

感谢您的关注 :-)

注意:这与此重复:https://stackoverflow.com/questions/19725129/creating-big-csv-file-in-windows-apache2-php

Flo*_*aie 5

只需将所有数据放入一些SQL(即使SQLite对于此目的来说还不错),然后将其导出为CSV.