为了更清楚地说明这一点,我将放置代码示例:
$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 个字节时,加载 1000000 个字节是否过大总字节数(在文件中间都相对靠近)。
那么哪个代码会执行得更好呢?使用哪个代码更有意义?一个快速的解释将不胜感激。