共计 659 个字符,预计需要花费 2 分钟才能阅读完成。
php 应用原生的 ZipArchive
类来打包 zip。
<?php
namespace App\Services;
use Exception;
use Illuminate\Support\Facades\Log;
/**
* Class Zip
*
* @package App\Services
*/
class Zip
{
/**
* @param array $path_arr 待打包的文件门路汇合
* @param string $zip_path 压缩包门路
*
* @return string
*/
public static function makeZip(array $path_arr, string $zip_path): string
{$zip = new \ZipArchive();
try {if ($zip->open($zip_path, \ZipArchive::CREATE | \ZipArchive::OVERWRITE)) {foreach ($path_arr as $file) {if (!file_exists($file)) {continue;}
$zip->addFile($file, basename($file));
}
$zip->close();
return $zip_path;
}
} catch (\Throwable $e) {Log::error(sprintf("%s err %s", __METHOD__, $e->getMessage()));
throw new Exception('打包出错了,请重试');
}
throw new Exception('打包出错了,请重试');
}
}
正文完