PHP:在不重载PHP的情况下对文件进行解包


PHP: Using unpack on a File without Overloading PHP?

我正试图使用PHP的解包函数从文件中创建一个数组。问题是PHP在处理较大的文件时内存不足。完成后,脚本应该处理3到4MB之间的文件,但仍然保持相当快的速度。以下是基本思想:

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

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

此外。。。很抱歉,如果类似的东西已经在这里发布了——不过我不认为是这样。:D

谢谢你的帮助。

看起来您必须增加ini文件中的memory_limit,因为file_get_contents将把整个文件加载到内存中。基本上,如果您想要获得一个大数组,那么无论如何都必须这样做。或者,您可以寻找其他方法来读取文件并逐步解压缩,而无需将整个文件读取到内存中。