php压缩和解压
2020-12-08 15:03:54 来源:admin 点击:769
1.压缩文件,代码如下:
//将文件压缩为zip文件
$zip=new \ZipArchive();
if($zip->open('note.zip',ZipArchive::OVERWRITE)===TRUE){
$zip->addFile('note.txt');
$zip->close();
}
如图所示,将note.txt文件压缩;
php压缩文件,php解压缩文件
php压缩文件,php解压缩文件
2.解压缩文件,代码如下:
//将zip文件解压
$zip=new ZipArchive();
if($zip->open('note.zip')===TRUE){
$zip->extractTo('note2.txt');
$zip->close();
}
如图所示:将note.zip解压为note2文件夹,文件夹中含有note.txt;
php压缩文件,php解压缩文件
php压缩文件,php解压缩文件
php压缩文件,php解压缩文件
3.追加文件内容到zip文件(会覆盖掉原先的内容),代码如下:
//追加文件内容到zip文件
$zip=new ZipArchive;
$res=$zip->open('note.zip',ZipArchive::CREATE);
if($res===TRUE){
$zip->addFromString('note.txt','原来的内容会被覆盖掉');
$zip->close();
echo '压缩完成!';
}else {
echo '压缩失败!';
}
如图所示,将新内容追加到了zip压缩文件内,但是之前的内容被新内容覆盖掉了;
php压缩文件,php解压缩文件
php压缩文件,php解压缩文件
php压缩文件,php解压缩文件
5
4.将文件夹压缩为zip文件(递归),代码如下:
//文件夹压缩为zip文件
function addFileToZip($path,$zip){
$handler=opendir($path);
while(($filename=readdir($handler))!==false){
if($filename != "." && $filename != ".."){
if(is_dir($path."/".$filename)){
addFileToZip($path."/".$filename, $zip);
}else { //将文件加入zip对象
$zip->addFile($path."/".$filename);
}
}
}
@closedir($path);
}
//调用上面函数
$zip=new ZipArchive();
if($zip->open('share.zip', ZipArchive::OVERWRITE)=== TRUE){
addFileToZip('ex/share/', $zip);
$zip->close();
}
如图所示,将ex文件夹压缩为share.zip文件;