目录结构:
test
test/index.php
test/test_zip.zip
test/test_zip
<?php
header('Content-type:text/html;charset=utf-8');
$filename = 'test_zip.zip';
$path = './test_zip.zip';
$dir = 'test_zip';
if(!is_dir($dir)) {
mkdir($dir, 0777, true);//创建目录保存解压内容
}
if(file_exists($filename)) {
$resource = zip_open($filename);
while($zip = zip_read($resource)) {
if(zip_entry_open($resource, $zip)) {
$file_content = zip_entry_name($zip);//获得文件名,mac压缩成zip,解压需要过滤资源库隐藏文件
$file_name = substr($file_content, strrpos($file_content, '/') +1);
if(!is_dir($file_name) && $file_name) {
$save_path = $dir .'/'. $file_name;
if(file_exists($save_path)) {
echo '文件夹内已存在文件 "' . $file_name . '" <pre />';
}else {
echo $file_name . '<pre />';
$file_size = zip_entry_filesize($zip);
$file = zip_entry_read($zip, $file_size);
file_put_contents($save_path, $file);
zip_entry_close($zip);
}
}
}
}
zip_close($resource);
}