PHP 파일의 압축을 풀고 압축하는 방법은 무엇입니까? (코드 예)

青灯夜游
풀어 주다: 2023-04-06 16:56:02
원래의
10362명이 탐색했습니다.

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿