swoole_async_read

异步读文件,使用此函数读取文件是非阻塞的,当读操作完成时会自动回调指定的函数。

bool swoole_async_read(string $filename, mixed $callback, int $size = 8192, int $offset = 0);

此函数与swoole_async_readfile不同,它是分段读取,可以用于读取超大文件。每次只读$size个字节,不会占用太多内存。

在读完后会自动回调$callback函数,回调函数接受2个参数:

bool callback(string $filename, string $content);
  • $filename,文件名称
  • $content,读取到的分段内容,如果内容为空,表明文件已读完

$offset参数在1.7.13以上版本可用

$callback函数,可以通过return true/false,来控制是否继续读下一段内容。

  • return true,继续读取
  • return false,停止读取并关闭文件