PHP
文件系统 | File System

fgets

fgets

(PHP 4, PHP 5, PHP 7)

fgets - 从文件指针获取行

描述

string fgets ( resource $handle [, int $length ] )

从文件指针获取一行。

参数

handle

文件指针必须是有效的,并且必须指向由fopen()或fsockopen()(并且尚未由fclose()关闭)成功打开的文件。

length

当读取length1个字节或换行符(包含在返回值中)或EOF(以先到者为准)时读取结束。如果没有指定长度,它将继续读取流,直到到达行尾。

注意:在PHP 4.3.0之前,省略它将假定1024作为行长度。如果文件中的大部分行都大于8KB,则脚本指定最大行长度会更节约资源。

返回值

返回长度最长的字符串 - 从句柄指向的文件中读取1个字节。 如果在文件指针中没有更多数据要读取,则返回FALSE。

如果发生错误,则返回FALSE

更新日志

版本描述
4.3.0fgets()现在是二进制安全的

例子

示例#1逐行读取文件

<?php $handle = @fopen("/tmp/inputfile.txt", "r" if ($handle) {     while (($buffer = fgets($handle, 4096)) !== false) {         echo $buffer;     }     if (!feof($handle)) {         echo "Error: unexpected fgets() fail\n";     }     fclose($handle } ?>

注意

注意:如果PHP在读取Macintosh计算机上创建的文件或由Macintosh计算机创建文件时未正确识别行结束符,启用auto_detect_line_endings运行时配置选项可能有助于解决问题。

注意:习惯了fgets()的'C'语义的人应该注意EOF如何返回的区别。

扩展内容

  • fgetss() - 从文件指针获取行并去除HTML标签

  • fread() - 读取二进制安全文件

  • fgetc()- 从文件指针获取字符

  • stream_get_line() - 从流资源获取直到给定分隔符的行

  • fopen() - 打开文件或URL

  • popen() - 打开进程文件指针

  • fsockopen() - 打开Internet或Unix域套接字连接

  • stream_set_timeout() - 设置流上的超时时间

← fgetcsv

fgetss →