0
我需要將zip壓縮文件中的目錄內容提取到輸出目錄中。PHP Zip:提取目錄中的內容
zip內的目錄名稱可以是任何東西。但它將是zip壓縮文件的唯一目錄。儘管如此,目錄中可能有許多文件在zip壓縮文件中。
拉鍊會沿着內部的文件結構提綱行:
- d0001
- My Folder
- view.php
- tasks.txt
- file1.txt
- picture1.png
- document.doc
輸出目錄的內容必須是這樣的:
- My Folder
- view.php
- tasks.txt
- file1.txt
- picture1.png
- document.doc
我目前擁有的代碼刪除內容的輸出目錄並將整個zip壓縮文件解壓縮到目錄中:
function Unzip($source, $destination) {
$zip = new ZipArchive;
$res = $zip->open($source);
if($res === TRUE) {
$zip->extractTo($destination);
$zip->close();
return true;
} else {
return false;
}
}
function rrmdir($dir, $removebase = true) {
if(is_dir($dir)) {
$objects = scandir($dir);
foreach($objects as $object) {
if($object != "." && $object != "..") {
if(filetype($dir."/".$object) == "dir") rrmdir($dir."/".$object); else unlink($dir."/".$object);
}
}
reset($objects);
if($removebase == true)
rmdir($dir);
}
}
$filename = '/home/files.zip';
$dest = '/home/myfiles/';
if(is_dir($dest)) {
rrmdir($dest, false);
$unzip = Unzip($filename, $dest);
if($unzip === true) {
echo 'Success';
} else
echo 'Extraction of zip failed.';
} else
echo 'The output directory does not exist!';
所有功能rrmdir()
確實是刪除輸出目錄的內容。