我有一個包含一個文件夾中的zip文件,包含多個文件夾和文件,像這樣從文件夾中的文件:PHP - 提取一個zip
myfile.zip
-firstlevel
--folder1
- -folder2
--folder3
--file1
--file2
現在,我想提取使用PHP的ZipArchive這個文件,但沒有「firstlevel 「文件夾。目前,結果是這樣的:
目的地/ firstlevel /文件夾1
目的地/ firstlevel /文件夾2
...
我想有是這樣的結果是:
目的地/文件夾1
目的地/文件夾2
...
我已經試過extractTo,其生產的第一提及結果和複製(),如建議here,但這似乎不工作。
我當前的代碼是在這裏:
if($zip->open('myfile.zip') === true) {
$firstlevel = $zip->getNameIndex(0);
for($i = 0; $i < $zip->numFiles; $i++) {
$entry = $zip->getNameIndex($i);
$pos = strpos($entry, $firstlevel);
if ($pos !== false) {
$file = substr($entry, strlen($firstlevel));
if(strlen($file) > 0){
$files[] = $file;
}
}
}
//attempt 1 (extractTo):
//$zip->extractTo('./test', $files);
//attempt 2 (copy):
foreach($files as $filename){
copy('zip://'.$firstlevel.'/'.$filename, 'test/'.$filename);
}
}
我如何能實現我的目標,結果呢?
現在情況如何?這些文件是否始終與頂層文件夾一起出現,或者文件是否以不同的方式出現?你怎麼知道頂層將永遠是空的? – 2013-03-10 16:50:20
準確地說:這些文件總是帶有頂層文件夾,在服務器上解壓縮文件時我不需要它們。 – Harmageddon 2013-03-10 20:11:37