php中4096的含义是什么


What is the meaning of 4096 in php?

我是php的新手
我一件简单的事都听不懂。

<?php 
    $users = fopen("users.txt", "r");
    while ($line = fgets($users, 4096)) {
        list($name, $occupation, $color) = explode("|", $line);
        printf("Name: %s<br/>", $name);
        printf("Occupation: %s<br/>", $occupation);
        printf("Favourite color: %s <br />", $color);
    }
    fclose($users);
 ?>

这里,在while ($line = fgets($users, 4096))行中,4096的含义是什么?

这只是假定的一条线的最大长度。

根据fgets()文档,

读取length-1字节、换行EOF(以先到者为准)后,读取结束。如果没有指定长度,它将继续从流中读取,直到到达行的末尾。

如果您没有在4.3.0中为PHP指定length,它将使用length = 1024
如果在较新版本中没有指定length,它将一直读取到行的末尾。

我可以猜测指定length:的几个原因

  • 与旧版本的兼容性。旧版本将使用length = 1024。如果文件中有较长的行,最好指定文件的最大长度
  • 如果您想从一行读取不超过n个字符
  • 此外,指定有限的length可能会对性能产生积极影响(如果我错了,请纠正我

因此,在新版本中,如果您想读取整行内容,请不要使用length,也不要将其设置为输入中一行的最大长度。