PHP中的数组大小限制

时间:2011-05-08 05:58:26

标签: php arrays

我想知道php 5中的数组有大小限制吗?我写了一个PHP脚本来更改文件中每行的最后一个元素。 print out the content of a modified file,当我在一个小型文件上运行脚本时(即每行包含4个值),它将起作用。当我在一个更大的文件(如60000行,每个包含90个值)上运行它时,它不会更改原始文件的一点,但脚本在运行时没有抛出任何异常消息。这是什么问题?

2 个答案:

答案 0 :(得分:36)

您可能内存不足,因为您的数组大小(理论上)仅受分配给脚本的内存量的限制。 将ini_set('memory_limit', '1024M');放在脚本的开头,将内存限制设置为1 GB。您可能需要将此值提高更高才能获得最佳效果。

答案 1 :(得分:4)

正如manyxcxi所说,你可能不得不增加memory_limit。有时您也可以通过使用unset($ var)取消设置大变量来减少内存使用量。仅当变量远远超出其最后使用点时才需要这样做。

您现在是否有机会阅读整个文件,将其转换然后再写入新文件?如果是这样,您可以通过在读取一小部分的循环中工作来减少内存使用量,处理它并将其写出并重复该操作直到您到达文件末尾。但只有转换算法不需要整个文件转换一小部分。