【问题标题】:PHP: Using unpack on a File without Overloading PHP?PHP:在不重载 PHP 的情况下对文件使用解包?
【发布时间】:2012-09-09 09:41:46
【问题描述】:

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

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

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

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

感谢您的帮助。

【问题讨论】:

  • 这应该从什么开始? PHP 的“字节数组”只是字符串。 $byte_array = file_get_contents($file);,完成。

标签: php arrays memory time


【解决方案1】:

看起来您必须在 ini 文件中增加 memory_limit,因为 file_get_contents 会将整个文件加载到内存中。基本上,如果你想获得一个大数组——无论如何你都必须这样做。或者您可以寻找其他方式来读取文件并逐步解包,而不是将整个文件读入内存。

【讨论】:

    猜你喜欢
    • 2017-03-04
    • 1970-01-01
    • 2010-10-18
    • 2014-12-22
    • 1970-01-01
    • 1970-01-01
    • 2021-03-15
    • 1970-01-01
    • 2015-12-30
    相关资源
    最近更新 更多