PHP stream_get_line() 函数从给定的流中获取一行。
当读取到 length 个字节、找到 ending 指定的非空字符串(不包含在返回值中)或EOF(以先到者为准)。
此函数与 fgets() 几乎相同,只是它允许使用除标准 \n、\r 和 \r\n 之外的行尾分隔符,并且不返回分隔符本身。
语法
stream_get_line(stream, length, ending)
参数
stream | 必填。 指定有效的文件流。 |
length | 必填。 指定从流读取的最大字节数。不支持负值。零 (0) 表示默认套接字块大小,即 8192 字节。 |
ending | 可选。 指定字符串分隔符。 |
返回值
返回长度不超过长度 从stream指向的文件中读取的字节。如果发生错误,则返回 false。
示例:从文件中读取指定字节
假设我们有一个名为 test.txt 的文件。该文件包含以下内容:
This is a test file.
It contains dummy content.
在下面的示例中,使用 fopen() 打开该文件功能。然后读取第一行的前 25 个字节。执行此读取操作后,使用 fclose() 函数将其关闭。
<?php
//以读模式打开文件
$fp = fopen("test.txt", "r") or
die("Unable to open file!");
//读取前25个字节并
//显示读取的内容
echo stream_get_line($fp, 25);
//关闭文件
fclose($fp);
?>
上述代码的输出将是:
This is a test file.
It
示例:从文件中读取第一行
要从文件中读取第一行,可以将stream_get_line()函数与ending参数一起使用如"\n"。考虑下面的示例:
<?php
//以读模式打开文件
$fp = fopen("test.txt", "r") or
die("Unable to open file!");
//读取第一行并
//显示读取的内容
echo stream_get_line($fp, 0, "\n");
//关闭文件
fclose($fp);
?>
上述代码的输出将是:
This is a test file.
示例:逐行读取文件
By在 while 循环中使用 feof() 函数,可以逐行读取文件。考虑下面的示例:
<?php
//以读模式打开文件
$fp = fopen("test.txt", "r") or
die("Unable to open file!");
//逐行读取文件
//并显示读取的内容
while(!feof($fp)) {
echo stream_get_line($fp, 0, "\n");
}
//关闭文件
fclose($fp);
?>
上述代码的输出将是:
This is a test file.
It contains dummy content.