在PHP中有一個ZipArchive類,可以很容易地用來創建zip文件。下面通過示例來介紹如何在PHP中創建zip文件?!疽曨l教程推薦:PHP教程】
創建一個新的zip文件
以下代碼將創建一個新的zip文件(test_new.zip)并向其中添加一些文件。
?php$zip = new ZipArchive;if ($zip- open( test_new.zip , ZipArchive::CREATE) === TRUE) // 將文件添加到zip文件 $zip- addFile( test.txt $zip- addFile( test.pdf // 將random.txt文件添加到zip并將其重命名為newfile.txt $zip- addFile( random.txt , newfile.txt // 將有指定文本的new.txt文件添加到zip文件中 $zip- addFromString( new.txt , 要添加到new.txt文件中的文本 // 關閉zip文件 $zip- close();?
代碼說明:
第2行:創建ZipArchive類的對象
第3行:用于創建并打開一個名為test_new.zip的文件,以便我們可以向其中添加文件。標志ZipArchive::CREATE指定我們要創建一個新的zip文件
第6行和第7行:用于將文件添加到zip文件中。
第10行:用于將名為random.txt的文件添加到zip文件中,并在zip文件中將其重命名為newfile.txt。
第13行:用于添加新文件new.txt,文件內容為“要添加到new.txt文件的文本”。
第16行:關閉并保存對zip文件的更改。
注意:有時在使用文件的相對路徑時可能會出現問題。如果使用路徑有任何問題,那么我們也可以使用文件的絕對路徑
覆蓋現有的zip文件
如果要覆蓋現有的zip文件,我們可以使用類似于以下的代碼。該標志ZipArchive::OVERWRITE指定覆蓋現有的zip文件。
?php$zip = new ZipArchive;if ($zip- open( test_overwrite.zip , ZipArchive::OVERWRITE) === TRUE) // 將文件添加到zip文件 $zip- addFile( test.txt $zip- addFile( test.pdf // 關閉zip文件 $zip- close();?
代碼說明
此代碼將創建一個文件test_overwrite.zip,如果該文件已經存在,文件將被此新文件覆蓋。
創建一個新的zip文件并在指定文件夾中添加文件
?php$zip = new ZipArchive;if ($zip- open( test_folder.zip , ZipArchive::CREATE) === TRUE) // 將文件添加到zip文件中的demo_folder文件夾內 $zip- addFile( text.txt , demo_folder/test.txt $zip- addFile( test.pdf , demo_folder/test.pdf // 將random.txt文件添加到zip文件中的demo_folder文件夾內,并重命名為newfile.txt $zip- addFile( random.txt , demo_folder/newfile.txt // 將有指定內容的new.txt添加到zip文件中的demo_folder文件夾 $zip- addFromString( demo_folder/new.txt , 要添加到new.txt文件中的文本 // 關閉zip文件 $zip- close();?
代碼說明
上面的代碼會將zip文件中的不同文件添加到demo_folder文件夾中
addfile函數的第二個參數可用于將文件存儲在新文件夾中
addFromString函數中的第一個參數可用于將文件存儲在新文件夾中
創建一個新的zip文件并將文件添加到不同的文件夾中
?php$zip = new ZipArchive;if ($zip- open( test_folder_change.zip , ZipArchive::CREATE) === TRUE) // 將文件添加到zip文件 $zip- addFile( text.txt , demo_folder/test.txt $zip- addFile( test.pdf , demo_folder1/test.pdf // 關閉zip文件 $zip- close();?
代碼說明
我們將zip文件中的test.txt文件存儲到demo_folder文件夾中,將test.pdf文件存儲到demo_folder1文件夾中
創建一個zip文件,其中包含一個目錄中的所有文件
?php$zip = new ZipArchive;if ($zip- open( test_dir.zip , ZipArchive::OVERWRITE) === TRUE) if ($handle = opendir( demo_folder )) // 添加目錄中的所有文件 while (false !== ($entry = readdir($handle))) if ($entry != . $entry != .. !is_dir( demo_folder/ . $entry)) $zip- addFile( demo_folder/ . $entry); closedir($handle); $zip- close();?
代碼說明
第5-16行:打開一個目錄,并創建一個包含該目錄中所有文件的zip文件
第5行:打開目錄
第8行:獲取目錄中每個文件的名稱
第10行:跳過“.”和“..”以及任何其他目錄
第12行:將文件添加到zip文件中
第15行:關閉目錄
第18行:關閉zip文件
創建一個zip文件,其中包含多個目錄的所有文件
以下代碼將這些目錄中的不同文件夾和文件添加到zip文件中
?php$zip = new ZipArchive;if ($zip- open( test_files_dirs.zip , ZipArchive::OVERWRITE) === TRUE) // 添加 directory1 if ($handle = opendir( demo_folder/directory1/ )) while (false !== ($entry = readdir($handle))) if ($entry != . $entry != .. ) $zip- addFile( demo_folder/directory1/ . $entry); closedir($handle); // 添加 directory2 if ($handle = opendir( demo_folder/directory2/ )) while (false !== ($entry = readdir($handle))) if ($entry != . $entry != .. ) $zip- addFile( demo_folder/directory2/ . $entry); closedir($handle); // 添加 directory3 if ($handle = opendir( demo_folder/directory3/ )) while (false !== ($entry = readdir($handle))) if ($entry != . $entry != .. ) $zip- addFile( demo_folder/directory3/ . $entry); closedir($handle); $zip- close();?
代碼說明
第6-42行:將目錄directory1,directory2和directory3中的所有文件添加到zip文件中的相應目錄中。
以上就是本篇文章的全部內容,希望能對大家的學習有所幫助。更多精彩內容大家可以關注php 相關教程欄目?。。?p>以上就是如何使用PHP創建zip壓縮文件的詳細內容,PHP教程
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。
新聞熱點
疑難解答