首頁 >後端開發 >php教程 >PHP檔案要怎麼解壓縮和壓縮? (程式碼範例)

PHP檔案要怎麼解壓縮和壓縮? (程式碼範例)

青灯夜游
青灯夜游原創
2019-05-15 09:31:5210388瀏覽

php檔案解壓縮的方法:先偵測要解壓縮壓縮套件是否存在;然後偵測目標路徑是否存在;最後透過「$zip->extractTo($dest);」方法解壓縮檔案即可。

PHP檔案要怎麼解壓縮和壓縮? (程式碼範例)

下面這篇文章就來跟大家介紹如何使用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'));

相關影片教學推薦:《PHP教學

以上是PHP檔案要怎麼解壓縮和壓縮? (程式碼範例)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
上一篇:cms是什麼?下一篇:cms是什麼?