PHP Streams函数

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.