我有一个包含子目录的zip文件。我使用php extractTo()
函数解压缩它,但我只从root获取文件,我无法获取子目录中的文件。
我的Zip文件具有以下结构:
-Json
- 01.json
- 02.json
- 03.json
- URL
- url1.json
- url2.json
- seeker
- seek1.json
- seek.json
我的代码是:
$zip = new ZipArchive();
$zip->open($nombrezip);
$zip->extractTo($destino);
$zip->close();
所以我需要解压缩内部的文件" URL"和"寻求者"。
答案 0 :(得分:1)
所以,让我们说你有一个ZipFile: test.zip
结构:
(?<=\b\d+\.)0+(?=\d+\b)
要保持ZIP结构,您可以这样做:
- file1.txt
- file1.txt
- - dir1/
- - - file3.txt
- - - file4.txt
- - dir2/
- - - file5.txt
- - - file6.txt
这与做
相同<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip');
if ($res === TRUE) {
$zip->extractTo('./test', array('file1.txt', 'file2.txt'));
$zip->extractTo('./test', array('dir1/file3.txt', 'dir1/file4.txt'));
$zip->extractTo('./test', array('dir2/file5.txt', 'dir2/file6.txt'));
$zip->close();
echo 'ok';
} else {
echo 'failed';
}
?>
但是如果您有一个带有此结构的 test.zip 文件:
<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip');
if ($res === TRUE) {
$zip->extractTo('./test');
$zip->close();
echo 'ok';
} else {
echo 'failed';
}
?>
并且您希望像以前一样获得输出结构,您可以这样做:
- file1.txt
- file1.txt
- file3.txt
- file4.txt
- file5.txt
- file6.txt