Coroutine::fgets
最后更新于:2022-04-02 06:26:08
# Coroutine::fgets
[TOC]
协程方式按行读取文件内容。
~~~
function Coroutine::fgets(resource $handle);
~~~
`Co::fgets`底层使用了`php_stream`缓存区,默认大小为`8192`字节,可使用`stream_set_chunk_size`设置缓存区尺寸。
> 需要`2.1.1`或更高版本
> `fgets`函数仅可用于文件类型的`stream`资源
## 参数
* `$handle`文件句柄,必须是`fopen`打开的文件类型`stream`资源
## 返回值
* 读取到`EOL`(`\r`或`\n`)将返回一行数据,包括`EOL`
* 未读取到`EOL`,但内容长度超过`php_stream`缓存区`8192`字节,将返回`8192`字节的数据,不包含`EOL`
* 达到文件末尾`EOF`时,返回空字符串,可用`feof`判断文件是否已读完
* 读取失败返回`false`,使用`swoole_last_error`函数获取错误码
## 示例
~~~
$fp = fopen(__DIR__ . "/defer_client.php", "r");
go(function () use ($fp)
{
$r = co::fgets($fp);
var_dump($r);
});
~~~
';