PHP:在文件上使用unpack而不重载PHP?

时间:2012-09-09 09:41:47

标签: php arrays memory time

我正在尝试使用PHP的解包函数从文件创建数组。问题是PHP在处理更大的文件时会耗尽内存。完成后,脚本应该处理3到4 MB之间的文件,但仍然保持相当快的速度。 这是基本的想法:

<?php
$file = 'uploads/file.pcg';
$array = unpack('C*', file_get_contents($file));
?>

有没有一种方法可以在不重载PHP的情况下一次从整个文件生成数组,或者是我唯一可以选择使用每个脚本实例的合理数据量? - 大约1 MB似乎相当快。 - 难道即使单独的阵列需要比允许的限制更多的内存吗?

另外...如果此处已经发布了类似的内容,我很抱歉 - 我认为不是这样。 :D

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

看起来你必须在你的ini文件中增加memory_limit,因为file_get_contents会将整个文件加载到内存中。基本上,如果你想得到一个大型阵列 - 无论如何你必须这样做。或者您可以寻找其他方式来读取文件并逐步解压缩,而无需将整个文件读入内存。