【发布时间】:2014-12-31 05:41:05
【问题描述】:
我有一个非常大的文件,只有一行。它包含大约 260 万个数字。该文件约为 15 mb。
我的目标是在这个单行字符串中找到第 n 个数字。
我试图将文件读入一个字符串(记住它是单行文件)。然后我将字符串分解成一个内存不足的数组。 (允许内存大小268435456字节用尽(尝试分配71字节)
我做得对吗?还是有其他更简单的方法可以在一个非常大的字符串中找到第 n 个值?
$file = file_get_contents ('a.txt', true);
$array = explode(" ", $file, -1);
echo $array[$nth];
【问题讨论】:
-
是的。抱歉,在 PHP 中。
-
我们需要更多地了解您的文件。当您说 260 万个数字时,您显然不是在谈论 260 万个数字,否则文件将是 2.6 mb,而不是 15mb。因此,请向我们展示您实际使用的示例。
-
自从 OP 爆炸字符串以来,我们谈论的是空格分隔的数字。我猜。
-
您始终可以按较小的片段分析文件,例如一次一 MB。
-
文件是这样的:122 322 3222 2111 852 211 -233 358 0 12 ....,空格分隔。