PHP文件怎么解压和压缩

PHP压缩和解压文件需要有zip扩展—ZipArchive类

PHP ZipArchive类可用于压缩和解压缩。如果不存在,可能需要安装该类。

从PHP 5.3开始,此扩展是内置的。在此之前,Windows用户需要在php.ini中启用php_zip.dll才能使用其功能。

启用步骤:

1、打开php.ini文件,添加

extension=php_zip.dll

2、保存后,重启Apache或其他服务器。

PHP文件怎么解压?

/**
* 解压缩
* @method unzip_file
* @param string $zipName 压缩包名称
* @param string $dest 解压到指定目录
* @return boolean true|false
*/
function unzip_file(string $zipName,string $dest){
//检测要解压压缩包是否存在
if(!is_file($zipName)){
return false;
}
//检测目标路径是否存在
if(!is_dir($dest)){
mkdir($dest,0777,true);
}
$zip=new ZipArchive();
if($zip->open($zipName)){
$zip->extractTo($dest);
$zip->close();
return true;
}else{
return false;
}
}

PHP如何压缩文件?

示例1:压缩单个文件

/**
* 压缩单个文件
* @method zip_file
* @param string $filename 文件名
* @return boolean true|false
*/
function zip_file(string $filename){
if(!is_file($filename)){
return false;
}
$zip=new ZipArchive();
$zipName=basename($filename).'.zip';
//打开指定压缩包,不存在则创建,存在则覆盖
if($zip->open($zipName,ZipArchive::CREATE|ZipArchive::OVERWRITE)){
//将文件添加到压缩包中
if($zip->addFile($filename)){
$zip->close();
@unlink($filename);
return true;
}else{
return false;
}
}else{
return false;
}
}
// var_dump(zip_file('22.txt'));
// func_get_args
// test1.zip

示例2:多文件压缩

/**
* 多文件压缩
* @method zip_files
* @param string $zipName 压缩包的名称,.zip结尾
* @param string $files 需要压缩文件名,可以是多个
* @return boolean true|false
*/
function zip_files(string $zipName,...$files){
//检测压缩包名称是否正确
$zipExt=strtolower(pathinfo($zipName,PATHINFO_EXTENSION));
if('zip'!==$zipExt){
return false;
}
$zip=new ZipArchive();
if($zip->open($zipName,ZipArchive::CREATE|ZipArchive::OVERWRITE)){
foreach($files as $file){
if(is_file($file)){
$zip->addFile($file);
}
}
$zip->close();
return true;
}else{
return false;
}
}
// var_dump(zip_files('test1.zip','22.txt'));
// var_dump(zip_files('test2.zip','doUpload.php','downLoad.html','upload.html'));
赞(0)
声明:本网站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-62778877-8306;邮箱:fanjiao@west.cn。本站原创内容未经允许不得转载,或转载时需注明出处:西部数码知识库 » PHP文件怎么解压和压缩

登录

找回密码

注册