需呀用到ziparchive類,php預設帶的有,廢話不說,直接上**,親測可以使用,先來個生成壓縮包,解壓縮包後邊補上
開啟php支援ziparchive
在php.ini檔案中將extension=php_zip.dll 開頭的;的去掉,重啟www伺服器就可以了
1:對多個檔案生成壓縮包
<?php
//生成壓縮檔案
function createzip($files = array(),$destination = '',$overwrite = false)
$valid_files = array();
if(is_array($files)) }}
if(count($valid_files))
foreach($valid_files as $file)
$zip->close();
return file_exists($destination);
}else
}//生成壓縮檔案
$files=array(array('file'=>'27.txt','fn'=>'test.txt'));
file:原始檔名稱,最好帶路徑,比如/data/27.txt
fn:生成的壓縮檔案裡檔案的名稱,不用帶路徑
$newzip = '12.zip';//生成的壓縮檔案名稱
createzip($files,$newzip,true);
2:對資料夾生成壓縮包
function createdirzip
($path,$zip)else}}
@closedir($path);
}$zip=new ziparchive();
if($zip->open('test.zip', ziparchive::overwrite)=== true)
ziparchive的使用請檢視官方文件:
3:解壓縮
<?php
$file = 'test.zip';
function get_zip_file($filename, $path)
$filename = iconv("utf-8","gb2312",$filename);//根據實際情況看需不需要轉碼
$path = iconv("utf-8","gb2312",$path);//根據實際情況看需不需要轉碼
//開啟壓縮包
$resource = zip_open($filename);
//遍歷讀取壓縮包裡面的乙個個檔案
while ($dir_resource = zip_read($resource))
//如果不是目錄,則寫入檔案
if(!is_dir($file_name))
//關閉當前開啟的資源
zip_entry_close($dir_resource);}}
//關閉壓縮包
zip_close($resource);
}get_zip_file($file,'./');
zip官方文件:
PHP 生成壓縮包
filename date ymdh zip 最終生成的檔名 含路徑 生成檔案 zip new ziparchive 使用本類,linux需開啟zlib,windows需取消php zip.dll前的注釋 if zip open filename ziparchive overwrite true ...
php生成壓縮包
filename date ymdh zip 最終生成的檔名 含路徑 生成檔案 zip new ziparchive 使用本類,linux需開啟zlib,windows需取消php zip.dll前的注釋 if zip open filename ziparchive overwrite true ...
PHP生成zip壓縮包
我們將乙個檔案生成乙個壓縮包。path c wamp www log.txt filename test.zip zip new ziparchive zip open filename,ziparchive create 開啟壓縮包 zip addfile path,basename path 向...