我有以下代码。
$file="postcodes.csv";
$csv= file_get_contents($file);
$array = array_map("str_getcsv", explode("\n", $csv));
$json = json_encode($array);
print_r($json);
postcodes.csv的大小为603MB,是一个较大的文件。
在php.ini中,如果我有
memory_limit=1024M
我会得到以下错误
Fatal error: Allowed memory size of 1073741824 bytes exhausted (tried to allocate 256 bytes) in ...
如果我将内存限制增加到2056,我会得到以下错误
Fatal error: Out of memory (allocated 1919680512) (tried to allocate 36 bytes) in...
将它更改为-1也会有类似的问题。
那么如何在不遇到内存问题的情况下加载这个csv文件呢?
谢谢
memory_limit
增加到输入文件中字符数的4倍或8倍(根据您的架构),看看是否有帮助。免责声明:我还没有在PHP中进行过文件读取。 - underscore_d