1 Star 0 Fork 10

Discuz!应用中心 / DiscuzXPack

forked from 头上有灰机 / DiscuzXPack 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
ziptool.php 1.85 KB
一键复制 编辑 原始数据 按行查看 历史
oldhuhu 提交于 2019-12-13 11:49 . work without zip extension
<?php
function extract_zip($zipfile, $targetfolder)
{
logging\info("extracting zip from %s to %s", $zipfile, $targetfolder);
global $G_HAS_ZIP_COMMAND;
if ($G_HAS_ZIP_COMMAND) {
exec('unzip -o ' . $zipfile . ' -d ' . $targetfolder, $output, $res);
if ($res != 0) {
logging\error("cannot extract zip file %s", $zipfile);
exit(1);
}
return;
}
$zip = new ZipArchive;
$res = $zip->open($zipfile);
if ($res === true) {
$zip->extractTo($targetfolder);
$zip->close();
} else {
logging\error("cannot extract zip file %s", $zipfile);
exit(1);
}
}
function add_files_in_folder($zip, $folder, $base_folder)
{
$dir = @opendir(join_paths($base_folder, $folder));
while ($entry = readdir($dir)) {
if ($entry == '.' || $entry == '..') continue;
$relative_path = join_paths($folder, $entry);
$absolute_path = join_paths($base_folder, $relative_path);
if (is_dir($absolute_path)) {
add_files_in_folder($zip, $relative_path, $base_folder);
} else {
$zip->addFile($absolute_path, $relative_path);
}
}
closedir($dir);
}
function make_zip($zipfile, $folder)
{
logging\info("compressing %s to %s", $folder, $zipfile);
global $G_HAS_ZIP_COMMAND;
if ($G_HAS_ZIP_COMMAND) {
exec('cd "' . $folder . '" && zip -r ' . $zipfile . ' .', $output, $res);
if ($res != 0) {
logging\error("cannot create zip file %s", $zipfile);
exit(1);
}
return;
}
$zip = new ZipArchive;
if ($zip->open($zipfile, ZipArchive::CREATE | ZipArchive::OVERWRITE) === TRUE) {
add_files_in_folder($zip, '', $folder);
$zip->close();
} else {
logging\error("cannot create zip file %s", $zipfile);
exit(1);
}
}
PHP
1
https://gitee.com/discuzaddons/DiscuzXPack.git
git@gitee.com:discuzaddons/DiscuzXPack.git
discuzaddons
DiscuzXPack
DiscuzXPack
master

搜索帮助