PHP 解压 ZIP 中的文件到指定目录 (不含 ZIP 中的文件夹路径)

<?php
    header('Content-type:text/html;charset=utf-8');
    $filename = './xiyanhetong20181213.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);
    }

猜你喜欢

转载自blog.csdn.net/Echo_Progress/article/details/84989673