• 技术文章 >后端开发 >php教程

    PHP文件怎么解压和压缩?(代码示例)

    青灯夜游青灯夜游2020-09-16 15:14:13原创5115

    php文件解压的方法:首先检测要解压压缩包是否存在;然后检测目标路径是否存在;最后通过“$zip->extractTo($dest);”方法解压文件即可。

    下面本篇文章就来给大家介绍如何使用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是什么? 下一篇:【Phan】代码静态扫描
    Web大前端开发直播班

    相关文章推荐

    • php需要学哪些?• 怎么在iis下配置php• php有哪些技术博客• 怎么写php的扩展

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网