gpt4 book ai didi

php - 在单独的行上使用 fseek() fread() 还是 fread() 整个文件和 substr 来解析更好?

转载 作者:行者123 更新时间:2023-12-03 17:06:37 32 4
gpt4 key购买 nike

为了更清楚地说明这一点,我将放置代码示例:

$file = fopen('filename.ext', 'rb');

// Assume $pos has been declared
// method 1
fseek($file, $pos);
$parsed = fread($file, 2);

// method 2
while (!feof($file)) {
$data = fread($file, 1000000);
}

$data = bin2hex($data);
$parsed = substr($data, $pos, 2);

$fclose($file);

在方法 1 中大约有 40 个 fread()(可能有 15 个 fseek()),而在方法 2 中有 1 个 fread()。我唯一想知道的是,当你真的只有提取可能总共 100 个字节(所有字节都在文件中间相对靠近)。

那么哪个代码的性能会更好?使用哪个代码更有意义?快速解释将不胜感激。

最佳答案

如果您已经知道要查找的偏移量,fseek 是这里最好的方法,因为如果您只需要文件的几个字节,则没有理由将整个文件加载到内存中。第一种方法更好,因为您可以直接跳到文件流中想要的内容并读出一小部分。第二种方法要求您将整个文件读入内存,然后搜索它,而您可以直接从文件中读取它。希望这能回答您的问题

关于php - 在单独的行上使用 fseek() fread() 还是 fread() 整个文件和 substr 来解析更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2364395/

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