extractTo($dest);""/> extractTo($dest);"">
Maison > Article > développement back-end > Comment décompresser et compresser des fichiers PHP ? (exemple de code)
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.
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!