Coroutine::fread
最后更新于:2022-04-02 06:26:06
# Coroutine::fread
[TOC]
协程方式读取文件。
~~~
function Coroutine::fread(resource $handle, int $length = 0);
~~~
> 需要`2.0.11`或更高版本
## 参数
* `$handle`文件句柄,必须是`fopen`打开的文件类型`stream`资源
* `$length`读取的长度,默认为`0`,表示读取文件的全部内容
## 返回值
读取成功返回字符串内容,读取失败返回`false`
## 版本差异
`4.0.4`以下版本`fread`方法不支持非文件类型的`stream`,如`STDIN`、`Socket`,请勿使用`fread`操作此类资源。
`4.0.4`以上版本`fread`方法支持了非文件类型的`stream`资源,底层会自动根据`stream`类型选择使用`AIO`线程池或`EventLoop`实现。
## 示例
~~~
use Swoole\Coroutine as co;
$fp = fopen(__DIR__ . "/defer_client.php", "r");
co::create(function () use ($fp)
{
fseek($fp, 256);
$r = co::fread($fp);
var_dump($r);
});
~~~
';