extractTo($dest);""/> extractTo($dest);"">

Maison  >  Article  >  développement back-end  >  Comment décompresser et compresser des fichiers PHP ? (exemple de code)

Comment décompresser et compresser des fichiers PHP ? (exemple de code)

青灯夜游
青灯夜游original
2019-05-15 09:31:5210344parcourir

Comment décompresser les fichiers PHP : vérifiez d'abord si le package compressé à décompresser existe ; puis vérifiez si le chemin cible existe enfin, utilisez la méthode "$zip->extractTo($dest);" décompresser le fichier.

Comment décompresser et compresser des fichiers PHP ? (exemple de code)

L'article suivant vous présentera comment utiliser PHP pour compresser et décompresser des fichiers. Il a une certaine valeur de référence. Maintenant, je vais le partager avec vous. dans le besoin peut s'y référer.

Remarque : Les fichiers de compression et de décompression PHP nécessitent une extension zip --- Classe ZipArchive

La classe PHP ZipArchive peut être utilisée pour la compression et la décompression. Si elle n'existe pas, vous devrez peut-être installer la classe.

À partir de PHP 5.3, cette extension est intégrée. Avant cela, les utilisateurs Windows devaient activer php_zip.dll dans php.ini pour utiliser ses fonctionnalités.

Étapes d'activation :

1. Ouvrez le fichier php.ini et ajoutez

extension=php_zip.dll

2. Après avoir enregistré, redémarrez Apache ou d'autres serveurs.

Comment décompresser des fichiers 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;
  }
}

Comment compresser des fichiers en PHP ?

Exemple 1 : Compresser un seul fichier

/**
 * 压缩单个文件
 * @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

Exemple 2 : Compresser plusieurs fichiers

/**
 * 多文件压缩
 * @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'));

Vidéo connexe tutoriels Recommandé : "Tutoriel PHP"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:Qu'est-ce que le cms ?Article suivant:Qu'est-ce que le cms ?