我是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
,也不要将其设置为输入中一行的最大长度。