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安装了的

  • 王东升

    【注意undefined!!!!!!】异步回调模块已过时,目前仅修复 BUG,不再进行维护, 且在【4.3版本中移除了异步模块】。请使用 【Coroutine 协程模块】。使用Coroutine 协程!Coroutine 协程!Coroutine 协程!

  • 遗失的一只猫

    异步回调模块已过时 请,,,swoole4以上的朋友 ,使用这个函数的朋友点击Coroutine->第一个Coroutine->Coroutine::readFile

  • 你瞒

    玩了几天才找找到4以上的 async 异步好像都需要去加载新的扩展 需要swoole.so 后加载swoole_async.so

  • sameldon

    如果提示 swoole_async_readfile 不是一个有效的函数 那么就需要转一个php扩展 名字叫ext-async 下载地址为wget https://github.com/swoole/ext-async/archive/v4.4.6.zip

    注意的是 这个版本是对应 swoole的版本 4.4.6 也就是说这个扩展版本要和swoole版本配对! 安装的过程跟swoole一样 记得修改php,ini文件