fgets()

1. 定义

从文件指针处读取一行字符,直到遇到换行符、文件末尾或者函数参数列表中指定的长度($length - 1)后停止。 如果没有指定length,则默认为1024字节。

读取成功时返回读取的字符串,文件指针后没有多余的数据或者读取失败则返回FALSE。

2. 语法

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

3. 参数说明

参数 可选性 数据类型 描述
$handle 必需 资源类型 文件句柄,通过fopen()函数打开的文件资源
$length 可选 整型 规定要输出的字符串的字节数

4. 示例

<?php

// fgets()
// 从文件指针处读取一行字符,直到遇到换行符、文件末尾或者函数参数列表中指定的长度($length - 1)后停止

file_put_contents(__DIR__.'/test.txt', 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Tamen a proposito, inquam, aberramus. Teneo, inquit, finem illi videri nihil dolere. Id mihi magnum videtur. Quo igitur, inquit, modo? 
Duo Reges: constructio interrete. Quo modo autem philosophus loquitur? Recte, inquit, intellegis. Nihil enim iam habes, quod ad corpus referas');

$handle = fopen(__DIR__.'/test.txt','a+');
$length = 100;
$res = fgets($handle, $length);
echo $res,"\n";// 输出:Lorem ipsum dolor sit amet, consectetur adipiscing elit. Tamen a proposito, inquam, aberramus. Tene

fclose($handle);

$handle = fopen(__DIR__.'/test.txt','a+');
$length = 1000;
$res = fgets($handle, $length);// 遇到换行符时终止
echo $res;// 输出:Lorem ipsum dolor sit amet, consectetur adipiscing elit. Tamen a proposito, inquam, aberramus. Teneo, inquit, finem illi videri nihil dolere. Id mihi magnum videtur. Quo igitur, inquit, modo?

fclose($handle);

5. 延展阅读

  • fgetss():从打开的文件句柄中读取一行字符,并尝试过滤掉 HTML 和 PHP 标签,直到遇到换行符、文件末尾或者函数参数列表中指定的长度($length - 1)后停止
  • fread():读取指定长度的通过fopen()函数打开的文件内容
  • fgetc():从文件指针处读取一个字符(英文字符),同时文件指针向后移动一位,如果遇到文件末尾则返回FALSE
  • fopen():打开一个指定的文件或 URL。 如果 PHP 的allow_url_fopen未被打开,那么打开一个 URL 时fopen()调用失败
  • popen():用于打开一个指向进程的管道,只允许单向的读或者写