4
这是我第一次尝试在PHP中创建一个ZIP文件。使用PHP创建Zip文件?
我正在做的是,我的PHP将搜索某个目录中的文件,将它们全部抓住并保存到一个ZIP文件中。该zip文件然后将文件发送到浏览器进行下载。我非常接近,但我被困在某个部分。
这里是我的代码:
$zip = new ZipArchive();
if ($zip->open('test.zip', ZIPARCHIVE::CREATE) !== TRUE) {
die ("Could not open archive"); }
$myDirectory = opendir("../folder/plugins/".$id."");
while($entryName = readdir($myDirectory)) { $dirArray[] = $entryName; }
closedir($myDirectory);
$indexCount = count($dirArray);
sort($dirArray);
for($index=0; $index < $indexCount; $index++) {
if (substr("$dirArray[$index]", 0, 1) != "."){
$file = "".$myDirectory."".$dirArray[$index].".zip";
$zip->addFile($file, $file) or die ("cant add file"); ;
echo $dirArray[$index]; echo '</br>';
}}
$zip->close()or die("cant close");
试图关闭时,我收到“无法关闭”的错误。请帮助我,我无法找到我在代码中做错了什么。这是它是打印:
filename1.png
filename2.png
can't close
:)
你看用'getStatusString'返回的错误字符串? –
通常,一些代码改进:'$ zip-> addFile($ file,$ file)或die(“cant add file”); ;'(double分号),'$ file =“”。$ myDirectory。“”。$ dirArray [$ index]。“。zip”;'可以写得更好'$ file =“$ {myDirectory} $ {dirArray [$ index]}。zip',并且通常为了可读性,在'echo $ dirArray [$ index]; echo'';'中合并一行代码并不是一个好主意。 –