gpt4 book ai didi

php - 在 PHP 中读取文件时如何节省内存?

转载 作者:IT王子 更新时间:2023-10-28 23:36:43 36 4
gpt4 key购买 nike

我有一个 200kb 的文件,我在多个页面中使用,但在每个页面上我只需要该文件的 1-2 行,所以如果我知道行号,我如何才能只读取我需要的这些行?

例如,如果我只需要第 10 行,我不想在内存中加载所有行,只需要第 10 行。

对不起,我的英语不好!

最佳答案

试试 SplFileObject

echo memory_get_usage(), PHP_EOL;        // 333200

$file = new SplFileObject('bible.txt'); // 996kb
$file->seek(5000); // jump to line 5000 (zero-based)
echo $file->current(), PHP_EOL; // output current line

echo memory_get_usage(), PHP_EOL; // 342984 vs 3319864 when using file()

要输出当前行,您可以使用 current() 或仅使用 echo $file。我发现使用该方法更清楚。您也可以使用 fgets(),但这样会得到下一行。

当然,你只需要中间三行。我添加了 memory_get_usage 调用只是为了证明这种方法几乎不消耗内存。

关于php - 在 PHP 中读取文件时如何节省内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2603807/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com