ホームページ >バックエンド開発 >PHPチュートリアル >PHP8.0のZip解凍ライブラリ:ZipArchive

PHP8.0のZip解凍ライブラリ:ZipArchive

WBOY
WBOYオリジナル
2023-05-14 08:54:262927ブラウズ

PHP は、人気のあるサーバーサイド プログラミング言語として、広く使用され、サポートされています。 PHP8.0 バージョンの新しい Zip 解凍ライブラリも、PHP 開発者にさらに多くのプログラミング ツールとソリューションを提供できる非常に実用的な機能です。

この Zip 解凍ライブラリは ZipArchive と呼ばれ、PHP 8.0 バージョンで新しく導入された Zip 解凍および圧縮クラスです。この機能は、開発者が PHP での Zip ファイル操作の問題を解決し、よりシンプルで高速かつ効果的なソリューションを提供するのに役立ち、開発者がプロ​​ジェクトをより簡単に開発および管理できるようにします。

ZipArchive 機能を使用する前に、設定ファイルで Zip 拡張機能を有効にし、ZipArchive のサポートを有効にすることができます。ZipArchive の使用方法は、通常の PHP オブジェクトの操作と同様です。以下で詳しく紹介します。 。

1. ZipArchive ワークフロー

ZipArchive は、PHP 名前空間で呼び出すことができる名前空間クラスです。 ZipArchive の基本的なワークフローは次のとおりです:

  • まず、ZipArchive オブジェクトを作成し、open() メソッドを使用して、操作対象の Zip ファイルを開くか、新しい Zip ファイルを作成します。 ##次に、addFile () メソッドを使用して Zip ファイルにファイルを追加するか、addFromString() メソッドを使用して文字列データを Zip ファイルに追加します。
  • 最後に、close() メソッドを使用して、 Zip ファイルを閉じます。
  • ZipArchive は、読み取りモードと書き込みモードの 2 つのモードで Zip ファイルを開くことができます。 Zip ファイルを書き込みモードで開いた場合は、Zip ファイルにファイルまたは文字列データを追加して Zip ファイルを圧縮できますが、Zip ファイルを読み取りモードで開いた場合は、Zip ファイルの読み取りのみが可能です。 Zip ファイルに追加または変更することはできません。

2. ZipArchive の一般的なメソッド

ZipArchive には実用的なメソッドが多数用意されていますので、いくつかの一般的なメソッドを詳しく紹介します。

ZipArchive オブジェクトの作成
  1. ZipArchive 関数を使用するには、まず ZipArchive オブジェクトを作成する必要があります。次のステートメントを使用して ZipArchive オブジェクトを作成できます。
$zip = new ZipArchive();

Zip ファイルを開く
  1. Zip ファイルを開くには、読み取りモードと書き込みモードの 2 つのモードがあります。 Zip ファイルの書き込みまたは変更が必要な場合は、Zip ファイルを書き込みモードで開く必要があります。 ZIP ファイルは次の方法で開くことができます。
$zip->open($filename, $mode);

このうち、$filename は Zip ファイルのパスとファイル名、$mode は読み取りモードまたは書き込みモード、値は ZipArchive::CREATE または ZipArchive::OVERWRITE です。 ZipArchive::CREATE は、Zip ファイルが存在しない場合に Zip ファイルを作成することを意味し、ZipArchive::OVERWRITE は、Zip ファイルが存在する場合に元の Zip ファイルを上書きすることを意味します。

Zip ファイルにファイルを追加
  1. ZipArchive には、ファイルまたは文字列データを Zip ファイルに追加するための複数のメソッドが用意されています。このうち、addFile() メソッドは Zip ファイルにファイルを追加でき、addFromString() メソッドは Zip ファイルに文字列データを追加できます。ローカル ファイルを追加するには addFile() メソッドを使用し、文字列を追加するには addFromString() メソッドを使用します。
$zip->addFile($filename, $localname);
$zip->addFromString($localname, $contents);

このうち、$filename は追加するファイルのフルパスとファイル名、$localname は Zip ファイル内のファイル名、$contents は追加する文字列です。

Zip ファイルを閉じる
  1. close() メソッドを使用して Zip ファイルを閉じ、Zip ファイルに対する操作を完了します。
$zip->close();

Zip ファイルからコンテンツを読み取る
  1. Zip ファイルを開くモードが読み取りモードの場合、次の方法を使用して、Zip ファイルからコンテンツを読み取ることができます。 ZIPファイル。
$zip->getFromName($name);

このうち、$nameは読み込むZipファイル内のファイル名を指定します。

3. ZipArchive を使用するケース

ZipArchive を使用するプロセスを示すために、具体的なケースを見てみましょう。画像ファイルをZipファイルに圧縮してサーバーに保存する場合です。

$dir = './images';  // 图片目录
$zipname = 'images.zip';  // 压缩文件名

// 创建ZipArchive对象
$zip = new ZipArchive();

// 打开要写入的Zip文件
if ($zip->open($zipname, ZipArchive::CREATE) !== TRUE) {
  exit("无法创建Zip文件
");
}

// 从目录中读取文件,并将其添加到Zip文件中
if ($handle = opendir($dir)) {
  while (false !== ($entry = readdir($handle))) {
    if ($entry != "." && $entry != "..") {
      $zip->addFile($dir.'/'.$entry, $entry);
    }
  }
  closedir($handle);
}

// 关闭Zip文件
$zip->close();

// 将Zip文件保存到服务器
header('Content-Type: application/zip');
header('Content-Disposition: attachment; filename="'.basename($zipname).'"');
header('Content-Length: ' . filesize($zipname));
readfile($zipname);

// 清理Zip文件
unlink($zipname);

この場合、まず圧縮する画像のディレクトリと作成するZipファイルの名前を指定します。次に、ZipArchive オブジェクトを作成し、Zip ファイルを開き、ディレクトリ内の画像ファイルを Zip ファイルに追加します。最後に、Zip ファイルをサーバーに保存し、ダウンロードのためにユーザーに送信します。最後に、Zip ファイルをクリーンアップし、サーバーに保存されている Zip ファイルを削除する必要があります。

4. 概要

ZipArchive は、PHP8.0 バージョンで導入された非常に実用的な機能で、PHP 開発者が Zip ファイルの操作と管理を容易にすることができます。 ZipArchive が提供する方法はシンプルで実用的で、簡単にファイルまたは文字列データを Zip ファイルに追加したり、Zip ファイル内のデータを読み取ることもできます。 ZipArchive を使用すると、Zip ファイルを簡単に作成および管理できるため、PHP プログラミングの利便性と効率が向上します。

以上がPHP8.0のZip解凍ライブラリ:ZipArchiveの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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