文件/目录的压缩与解压操作,从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
true
bool $type
false
返回值:bool
使用示例:
// 解压
var_dump(\x\Zip::pull(ROOT_PATH.'1645101657_72968.zip', ROOT_PATH.'2/'));
注意:如何压缩包中存在中文目录或文件,解压后会是乱码名称。