经测试代码如下:
/**
* 解压zip
*
* @author 编程之家 jb51.cc jb51.cc
* @param type $zipfile 要解压的文件
* @param type $path 解压到该目录
* @param type $type
* @return int
*/
function emUnZip($zipfile,$path,$type = 'tpl') {
if (!class_exists('ZipArchive',FALSE)) {
return 3;//zip模块问题
}
$zip = new ZipArchive();
if (@$zip->open($zipfile) !== TRUE) {
return 2;//文件权限问题
}
$r = explode('/',$zip->getNameIndex(0),2);
$dir = isset($r[0]) ? $r[0] . '/' : '';
switch ($type) {
case 'tpl':
$re = $zip->getFromName($dir . 'header.PHP');
if (false === $re)
return -2;
break;
case 'plugin':
$plugin_name = substr($dir,-1);
$re = $zip->getFromName($dir . $plugin_name . '.PHP');
if (false === $re)
return -1;
break;
case 'backup':
$sql_name = substr($dir,-1);
if (getFileSuffix($sql_name) != 'sql')
return -3;
break;
}
if (true === @$zip->extractTo($path)) {
$zip->close();
return 0;
} else {
return 1;//文件权限问题
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。