ホームページ  >  記事  >  バックエンド開発  >  PHP ファイルを解凍および圧縮するにはどうすればよいですか? (コード例)

PHP ファイルを解凍および圧縮するにはどうすればよいですか? (コード例)

青灯夜游
青灯夜游オリジナル
2019-05-15 09:31:5210283ブラウズ

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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。