数据库 - Model 前置说明
官方开源项目 抓取代理IP

介绍

文件/目录的压缩与解压操作,从v2.5.21版本起支持,依赖\x\Zip组件。

该组件使用PHP的zip_open系列函数实现。

设置文件名称

用途:设置压缩包的名称。当不设置文件名称时,系统默认使用时间戳+5随机数的方式命名。
方法名:name()

参数:

  • string $name

    • 功能:自定义压缩包文件名,支持中文命名。
    • 值单位:字符串
    • 默认值:无

返回值:$this

使用示例:

\x\Zip::name('打包');

设置压缩包类型

用途:设置压缩包的类型。当不设置文件名称时,系统默认使用zip类型。
方法名:type()

参数:

  • string $type

    • 功能:指定压缩包类型。
    • 值单位:字符串
    • 默认值:无

返回值:$this

使用示例:

\x\Zip::type('zip');

设置文件名称

用途:设置压缩包的名称。当不设置文件名称时,系统默认使用时间戳+5随机数的方式命名。
方法名:name()

参数:

  • string $name

    • 功能:自定义压缩包文件名,支持中文命名。
    • 值单位:字符串
    • 默认值:无

返回值:$this

使用示例:

\x\Zip::name('打包');

指定压缩完成后,是否直接弹出下载

方法名:download()

参数:无

返回值:$this

使用示例:

\x\Zip::download();

压缩

用途:对某个目录、单文件 或 多个文件进行压缩打包。
方法名:push()

参数:

  • string $save_path

    • 功能:压缩包保存的路径(绝对地址)。
    • 值单位:字符串
    • 默认值:无
  • string|array $zip_pack

    • 功能:需要打包的目录、单个文件 或 多个文件地址(绝对地址)。
    • 值单位:字符串 或 一维数组
    • 默认值:无

返回值:bool

使用示例:

// 目录打包
var_dump(\x\Zip::push(ROOT_PATH, ROOT_PATH.'1/'));
// 单个文件打包
var_dump(\x\Zip::push(ROOT_PATH, ROOT_PATH.'1/中文目录/测试.pdf'));
// 打包多个文件
var_dump(\x\Zip::name('打包')->type('zip')->download()->push(ROOT_PATH, [
    ROOT_PATH.'1/对账单.pdf',
    ROOT_PATH.'1/1.doc',
    ROOT_PATH.'1/2/啊啊.txt',
    ROOT_PATH.'1/2/3/新建文本文档.txt',
    ROOT_PATH.'1/测试/执行操作.doc',
    ROOT_PATH.'1/测试/我的/qwee请问.doc',
    ROOT_PATH.'1/测试/我的/111.txt',
]));
// 指定文件名称、压缩包类型,同时输出下载
var_dump(\x\Zip::name('打包')->type('zip')->download()->push(ROOT_PATH, ROOT_PATH.'1/'));

解压

用途:把压缩包解压到某个目录下。
方法名:pull()

参数:

  • string $src_file

    • 功能:压缩包的所在路径(绝对地址)。
    • 值单位:字符串
    • 默认值:无
  • string $dest_dir

    • 功能:解压到的目录地址(绝对地址)。
    • 值单位:字符串
    • 默认值:无
  • bool $overwrite

    • 功能:是否需要覆盖已经存在的文件
    • 值单位:Bool
    • 默认值true
  • bool $type

    • 功能:解压完成后是否删除压缩包
    • 值单位:Bool
    • 默认值false

返回值:bool

使用示例:

// 解压
var_dump(\x\Zip::pull(ROOT_PATH.'1645101657_72968.zip', ROOT_PATH.'2/'));

注意:如何压缩包中存在中文目录或文件,解压后会是乱码名称。

SW-X

企业级 - 高性能 PHP 框架

最后更新:3年前 . 作者-小黄牛

本篇目录