使用 PHP 解析或拆分 CSV,而无需读取内存


Use PHP to parse or split a CSV without reading into memory

我有一个供应商的产品提要,该文件是 100mb .gz文件。 我使用 PHP 将文件解压缩为 1gb .csv文件。 我的服务器在解包方面没有问题,但是,我想从.csv中获取信息并将其放入MySQL数据库中。

该.csv包含大约 240,000 行,其中大约 20 - 25 个逗号分隔的字段。 问题是我的托管服务提供商不允许我将这么大的文件加载到内存中进行处理。

有谁知道我可以将.csv拆分为更小的文件(每个 100mb),要么从原始.gz解压缩,要么有没有办法让我读取.csv中包含的信息而不将整个文件加载到内存中?

你应该能够用fgetcsv做到这一点。