php简单创建zip压缩文件的方法

本文实例讲述了php简单创建zip压缩文件的方法。分享给大家供大家参考,具体如下:

  1. /* creates a compressed zip file */
  2. function create_zip($files = array(),$destination = '',$overwrite = false) {
  3. //if the zip file already exists and overwrite is false, return false
  4. if(file_exists($destination) && !$overwrite) { return false; }
  5. //vars
  6. $valid_files = array();
  7. //if files were passed in...
  8. if(is_array($files)) {
  9. //cycle through each file
  10. foreach($files as $file) {
  11. //make sure the file exists
  12. if(file_exists($file)) {
  13. $valid_files[] = $file;
  14. }
  15. }
  16. }
  17. //if we have good files...
  18. if(count($valid_files)) {
  19. //create the archive
  20. $zip = new ZipArchive();
  21. if($zip->open($destination,$overwrite ? ZIPARCHIVE::OVERWRITE : ZIPARCHIVE::CREATE) !== true) {
  22. return false;
  23. }
  24. //add the files
  25. foreach($valid_files as $file) {
  26. $zip->addFile($file,$file);
  27. }
  28. //debug
  29. //echo 'The zip archive contains ',$zip->numFiles,' files with a status of ',$zip->status;
  30. //close the zip -- done!
  31. $zip->close();
  32. //check to make sure the file exists
  33. return file_exists($destination);
  34. }//phpfensi.com
  35. else
  36. {
  37. return false;
  38. }
  39. }

使用方法:

  1. $files_to_zip = array(
  2. 'preload-images/1.jpg',
  3. 'preload-images/2.jpg',
  4. 'preload-images/5.jpg',
  5. 'kwicks/ringo.gif',
  6. 'rod.jpg',
  7. 'reddit.gif'
  8. );
  9. //if true, good; if false, zip creation failed
  10. $result = create_zip($files_to_zip,'my-archive.zip');