次の PHP セグメントを使用して、すぐに zip ファイルを圧縮できます
- function create_zip($files = array(),$destination = '',$overwrite = false) {
- //zip ファイルが既に存在し、上書きされる場合false、return false
- if(file_exists($destination) && !$overwrite) { return false; }
- //vars
- $valid_files = array();
- //ファイルが渡された場合...
- if(is_array($files)) {
- //各ファイルを循環する
- foreach($files as $file) {
- //ファイルが存在することを確認する
- if(file_exists ($file)) {
- $valid_files[] = $file;
- }
- }
- }
- //適切なファイルがあれば...
- if(count($valid_files)) {
- //アーカイブを作成します
- $zip = new ZipArchive();
- if($zip->open($destination,$overwrite ? ZIPARCHIVE::OVERWRITE : ZIPARCHIVE::CREATE) !== true) {
- return false;
- }
- //ファイルを追加します
- foreach($valid_files as $file) {
- $zip->addFile($file,$file);
- }
- //debug
- //echo 'zip アーカイブには ',$zip->numFiles' というステータスのファイルが含まれています。
-
- //ジッパーを閉じて、完了です!
- $zip->close();
-
- //ファイルが存在することを確認します
- return file_exists($destination);
- }
- else
- {
- false を返します。
- }
- }
复制代
使用法:
- $files=array('file1.jpg', 'file2.jpg', 'file3.gif');
- create_zip($files, 'myzipfile.zip', true);
- ?>
复制幣
|