【发布时间】:2012-11-05 10:48:53
【问题描述】:
我尝试使用不同的方法(其中一种方法如下)从 php 中的 csv 文件或大文件大小(超过 250MB)的逗号分隔文件中读取数据,因此我可以将所需数据从中插入 mysql 数据库但是程序每次在文件读取完成之前都会崩溃。我还尝试增加 php.ini 中的内存限制。 面临以下错误:-
1.------------------------------------------ ----
memory_limit = 128M 致命错误:第 19 行 C:\wamp\www\site\files\plugin\agoda\agoda.plugin.php 中允许的内存大小为 134217728 字节已用尽(尝试分配 63 字节)
2.------------------------------------------ ----
memory_limit = 1000M 致命错误:第 19 行 C:\wamp\www\site\files\plugin\agoda\agoda.plugin.php 中允许的内存大小为 1048576000 字节已用尽(尝试分配 1299 字节)
3.------------------------------------------ ----
memory_limit = 2000M
空
我需要一种在 php 中读取此类文件而不会使程序崩溃的方法。
【问题讨论】:
-
不要试图一口气读入整个csv文件,然后再处理;一次读取一行,处理,然后读取下一行(重复直到 eof)
-
如果您不使用 PHP 对 CSV 文件进行任何计算,请考虑直接使用 MySql 将其导入。除此之外,这里没有问题,因为你只陈述了之前已经被问到和回答过的明显的记忆错误。
-
@Mark Baker,你能指导我如何逐行读取 csv 并在应用一些过滤器/函数/整流器后将其添加到 mysql
-
@Gordon,你能指导我如何逐行读取 csv 并在应用一些过滤器/函数/整流器后将其添加到 mysql
-
@adnanmasood 是的,我可以。但请先做研究。
标签: php csv filereader memory-limit