ホームページ  >  記事  >  バックエンド開発  >  PHP スニペットは、その場で zip ファイルを圧縮します

PHP スニペットは、その場で zip ファイルを圧縮します

WBOY
WBOYオリジナル
2016-07-25 08:42:38825ブラウズ

次の PHP セグメントを使用して、すぐに zip ファイルを圧縮できます

  1. function create_zip($files = array(),$destination = '',$overwrite = false) {
  2. //zip ファイルが既に存在し、上書きされる場合false、return false
  3. if(file_exists($destination) && !$overwrite) { return false; }
  4. //vars
  5. $valid_files = array();
  6. //ファイルが渡された場合...
  7. if(is_array($files)) {
  8. //各ファイルを循環する
  9. foreach($files as $file) {
  10. //ファイルが存在することを確認する
  11. if(file_exists ($file)) {
  12. $valid_files[] = $file;
  13. }
  14. }
  15. }
  16. //適切なファイルがあれば...
  17. if(count($valid_files)) {
  18. //アーカイブを作成します
  19. $zip = new ZipArchive();
  20. if($zip->open($destination,$overwrite ? ZIPARCHIVE::OVERWRITE : ZIPARCHIVE::CREATE) !== true) {
  21. return false;
  22. }
  23. //ファイルを追加します
  24. foreach($valid_files as $file) {
  25. $zip->addFile($file,$file);
  26. }
  27. //debug
  28. //echo 'zip アーカイブには ',$zip->numFiles' というステータスのファイルが含まれています。
  29. //ジッパーを閉じて、完了です!
  30. $zip->close();
  31. //ファイルが存在することを確認します
  32. return file_exists($destination);
  33. }
  34. else
  35. {
  36. false を返します。
  37. }
  38. }
复制代

使用法:
  1. $files=array('file1.jpg', 'file2.jpg', 'file3.gif');
  2. create_zip($files, 'myzipfile.zip', true);
  3. ?>
复制幣

PHP、zip


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。