序
网站上需要用到打包文件的可以使用,代码已验证,记录下。
实现代码
//在指定路径创建一个空的压缩包 例如 当前路径 创建 pack.zip
// 获取压缩文件清单
$fileList = file_list(__DIR__."/temp/img");
// 打包文件名称
$_filename = date('YmdHis') . '.zip';
// 打包文件保存路径
$filename = __DIR__ .'/temp/'. $_filename;
// 如果复制空压缩包成功则加入压缩文件
if (copyFile(__DIR__ . '/pack.zip', $filename)) {
// 实例化压缩类
$zip = new \ZipArchive();
// 打开压缩包
if ($zip->open($filename, \ZipArchive::CREATE)) {
foreach ($fileList as $file) {
//向压缩包中添加文件
$zip->addFile($file, basename($file));
}
//关闭压缩包
$zip->close();
exit('打包完成');
} else {
exit('打包失败');
}
} else {
exit('压缩包创建失败');
}
//自定义方法补充
// 获取所有文件夹
function file_list($path, $complete = true)
{
//设置空数组
$arr = array();
//判断文件是否存在
if (is_file($path)) {
} else {
//判断是否是路径
if (is_dir($path)) {
//获取目录下所有文件和目录
$data = scandir($path);
//判断是否为空
if (!empty($data)) {
//循环取出文件
foreach ($data as $value) {
//过滤特殊文件
if ($value != '.' && $value != '..') {
//判断是返回完整路径还是仅文件名
if ($complete) {
$sub_path = $path . "/" . $value;
} else {
$sub_path = $value;
}
//判断是否存在二级目录
if (is_dir($sub_path)) {
//递归二级目录文件
$temp = file_list($sub_path);
$arr = array_merge($temp, $arr);
} else {
$arr = array_merge([$sub_path], $arr);
}
}
}
}
}
}
//返回数据
return $arr;
}
// 复制文件
function copyFile($filepath, $tofilepath)
{
//复制文件地址 复制文件到地址
return copy($filepath, $tofilepath);
}
3 条评论
版主!能联系一下吗·?有事找你
有什么问题?