// $zip = new ZipArchive;
// $res = $zip->open($filePath);
// if ($res === TRUE) {
// Log::info("unzip success");
// //解压缩到test文件夹
// $zip->extractTo('data'); // trans-10001-20180419-xls.zip
// $zip->close();
// } else {
// Log::info('failed, code:' . $res);
// }
if (!function_exists('unZip')) {
function unZip($dir)
{
$zip = zip_open($dir);
$dirnames = dirname($dir);
if ($zip) {
while ($zip_entry = zip_read($zip)) {
if (zip_entry_open($zip, $zip_entry, "r")) {
$buf = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry)); // 读取zip文件, 并制定读取的长度
$fname = $dirnames . '/' . zip_entry_name($zip_entry);
if (is_dir($fname)) // 如果是目录则创建目录(目录是未创建的)
{
mk_dir($dirnames . '/' . zip_entry_name($zip_entry));
} else // 是文件
{
mk_dir(dirname($fname));
file_put_contents($fname, $buf); // 将读取到的内容直接写入文件
}
zip_entry_close($zip_entry);
}
}
zip_close($zip);
}
}
}
if (!function_exists('mk_dir')) {
// 循环创建目录
function mk_dir($dir, $mode = 0777)
{
if (is_dir($dir) || @mkdir($dir, $mode)) {
return true;
}
if (!mk_dir(dirname($dir), $mode)) {
return false;
}
return @mkdir($dir, $mode);
}
}