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

2020-07-16 10:05:39
下面本篇文章就來給大家介紹如何使用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檔案怎麼解壓和壓縮?(程式碼範例)的詳細內容,更多請關注TW511.COM其它相關文章!