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'';'中合併一行代碼並不是一個好主意。 –