swoole_async_readfile

异步读取文件内容,函数原型

//函数风格
swoole_async_readfile(string $filename, mixed $callback);
//命名空间风格
Swoole\Async::readFile(string $filename, mixed $callback);
  • 文件不存在会返回false
  • 成功打开文件立即返回true
  • 数据读取完毕后会回调指定的callback函数。

使用示例:

swoole_async_readfile(__DIR__."/server.php", function($filename, $content) {
     echo "$filename: $content";
});

swoole_async_readfile会将文件内容全部复制到内存,所以不能用于大文件的读取
如果要读取超大文件,请使用swoole_async_read函数
swoole_async_readfile最大可读取4M的文件,受限于SW_AIO_MAX_FILESIZE



  • Frank

    试了一下,这个功能不支持对url的读取,希望增加。 Warning: swoole_async_readfile(): open file[http://www.baidu.com] failed. Error: No such file or directory

  • 木子

    这只能读本地文件。

  • 柴郡猫cat

    url读取要发起网络请求的

  • cslistener

    注意:用swoole_async_readfile异步读取Linux伪文件系统/proc会发生警告: Warning: swoole_async_readfile(): file is empty.

  • 过期的奶酪

    @Frank url不是属于http的范畴么。

  • 浪迹哥

    其它模块用着正常,可是异步文件系统的系列函数都用不了,Fatal error: Uncaught Error: Call to undefined function swoole_async_readfile()

  • GT

    Fatal error: Uncaught Error: Call to undefined function swoole_async_readfile()

  • GT

    PHP Fatal error: Uncaught Error: Class 'Swoole\Async' not found

  • sundays

    使用示例代码报错: PHP Fatal error: Uncaught Error: Call to undefined function swoole_async_writefile() 求解? 已安装好swoole

  • yyyxxxx

    异步文件系统仅限于4.3.0之前的版本,后续版本已经全面使用携程(coroutine)代替原有方案,具体参见:Coroutine模块

  • aoxiang

    PHP Fatal error: Uncaught Error: Call to undefined function swoole_async_readfile() 求解:swoole安装了的