牛牛在线工具

eio_sendfile()

收录 8868 个 PHP 函数,含用途说明与用法示例。

eio_sendfile()

在文件描述符之间进行零拷贝文件传输

函数名称:eio_sendfile() 适用版本:PHP 7.4.0及以上版本 函数描述:eio_sendfile()函数用于在文件描述符之间进行零拷贝文件传输。 用法: eio_sendfile(resource $out_fd, resource $in_fd, int $offset, int $length, callable $callback, mixed $data = NULL); 参数: $out_fd:目标文件描述符,需要支持写入操作的文件描述符。 $in_fd:源文件描述符,需要支持读取操作的文件描述符。 $offset:从源文件的偏移量开始传输数据。 $length:传输的数据长度。 $callback:数据传输完成后的回调函数,接收一个参数表示传输结果。 $data:可选参数,将传递给回调函数的额外数据。 示例: $out_fd = fopen('destination.txt', 'w'); // 打开目标文件以写入 $in_fd = fopen('source.txt', 'r'); // 打开源文件以读取 // 调用 eio_sendfile() 函数进行文件传输 eio_sendfile($out_fd, $in_fd, 0, filesize('source.txt'), function($result) use ($out_fd, $in_fd) { if ($result === 0) { echo "文件传输成功!"; } else { echo "文件传输失败!"; } fclose($out_fd); // 关闭目标文件描述符 fclose($in_fd); // 关闭源文件描述符 }); 注意事项: 源文件和目标文件都需要使用合适的文件打开模式(例如读取、写入模式)打开。 数据传输的长度不能超过源文件的总大小。 回调函数中的$result参数将是传输的结果,为0表示传输成功,其他值表示传输失败。