请参阅this question。我不能使用该代码:为什么我的邮政编码无法按预期工作?
function addFolderToZip($dir, $zipArchive, $zipdir = ''){
if (is_dir($dir)) {
if ($dh = opendir($dir)) {
//Add the directory
$zipArchive->addEmptyDir($dir);
// Loop through all the files
while (($file = readdir($dh)) !== false) {
//If it's a folder, run the function again!
if(!is_file($dir . $file)){
// Skip parent and root directories
if(($file !== ".") && ($file !== "..")){
addFolderToZip($dir . $file . "/", $zipArchive, $zipdir . $file . "/");
}
}else{
// Add the files
$zipArchive->addFile($dir . $file, $zipdir . $file);
}
}
}
请为我写一个例子。第二个问题太复杂了。
当我使用addfile
函数时,它会添加并作为一个文件出现在存档中,这很好。现在,当我使用:
$z = new ZipArchive();
$z->open('test.zip')
for ($i=0; $i< $z->numFiles;$i++) {
$aZipDtls = $z->statIndex($i);
echo $aZipDtls['name'];
}
它现在展示的,如果我在文件夹中添加一个文件,这样的:
$zip->addFile('/path/to/index.txt', 'dir/newname.txt');
它显示在WinRAR的软一个目录,然后一个文件,但在它的代码显示它作为一个文件。
就像那个在WinRAR:
dir/
dir/newname.txt
在我的PHP系统,仅仅只显示一个文件,没有它的目录,这样的:
dir/newname.txt
这意味着它是不可能添加一个新的文件一个dir。
请解释一下你希望我们为你写的例子。 – Natrium 2010-02-04 08:27:44
您的问题对我而言并不明确,而且您不使用标点或首字母,这会使您的问题难以阅读。 – 2010-02-04 09:04:05