我正在尝试使用PHP的解包函数从文件创建数组。问题是PHP在处理更大的文件时会耗尽内存。完成后,脚本应该处理3到4 MB之间的文件,但仍然保持相当快的速度。 这是基本的想法:
<?php
$file = 'uploads/file.pcg';
$array = unpack('C*', file_get_contents($file));
?>
有没有一种方法可以在不重载PHP的情况下一次从整个文件生成数组,或者是我唯一可以选择使用每个脚本实例的合理数据量? - 大约1 MB似乎相当快。 - 难道即使单独的阵列需要比允许的限制更多的内存吗?
另外...如果此处已经发布了类似的内容,我很抱歉 - 我认为不是这样。 :D
感谢您的帮助。
答案 0 :(得分:0)
看起来你必须在你的ini文件中增加memory_limit,因为file_get_contents会将整个文件加载到内存中。基本上,如果你想得到一个大型阵列 - 无论如何你必须这样做。或者您可以寻找其他方式来读取文件并逐步解压缩,而无需将整个文件读入内存。