PHP ZipArchive を使用して圧縮パッケージを分割およびマージするにはどうすればよいですか?
はじめに:
実際の開発プロセスでは、大きなファイルや多数のファイルを処理する必要がある場合がありますが、現時点では、ファイル コレクションを圧縮する方法が一般的です。ただし、場合によっては、システムの制限またはその他の理由により、大きな圧縮ファイルを複数の小さなファイルに分割したり、複数の小さな圧縮ファイルを 1 つの大きな圧縮ファイルにマージしたりすることが必要になることがあります。この記事では、PHP の ZipArchive ライブラリを使用して、圧縮パッケージに対するボリュームの分割と結合の操作を実装する方法を紹介します。
1. ボリューム分割操作:
圧縮パッケージの分割操作を実現するには、次の手順を実行する必要があります:
$zip = new ZipArchive; $res = $zip->open('archive.zip', ZipArchive::CREATE); if ($res === TRUE) { // Success } else { // Failed }
$volume_size = 100; // 分卷大小(单位:M) $volume_size_bytes = $volume_size * 1024 * 1024; // 分卷大小(字节数)
$files = glob('path/to/files/*'); // 获取待压缩文件列表 $files_chunks = array_chunk($files, $volume_size_bytes); // 根据分卷大小划分文件数组
$i = 1; // 计数器 foreach ($files_chunks as $chunk) { $zip->addFiles($chunk, 'volume_' . $i); // 添加文件到压缩包中,文件夹名为volume_1、volume_2... $i++; }
$zip->close();
この時点で、圧縮パッケージのボリューム分割操作が完了しました。各ボリュームは指定されたサイズであり、正しく解凍して結合できます。
2. マージ操作:
圧縮パッケージのマージ操作を実装するには、次の手順を実行する必要があります:
$zip = new ZipArchive; $res = $zip->open('merged.zip', ZipArchive::CREATE); if ($res === TRUE) { // Success } else { // Failed }
$volume_files = glob('path/to/volumes/volume_*'); // 获取分卷文件列表
foreach ($volume_files as $volume_file) { $zip->open($volume_file); // 打开分卷压缩包 $zip->extractTo('path/to/merge'); // 解压到指定目录 $zip->close(); // 关闭压缩包 }
$zip->close();
この時点で、圧縮パッケージのマージが完了しました。すべてのボリューム ファイルが正しく解凍され、単一のアーカイブにマージされました。
結論:
PHP の ZipArchive ライブラリを使用すると、圧縮パッケージの分割と結合操作を簡単に実現できます。上記の手順により、大きな圧縮ファイルを複数の小さなファイルに分割したり、複数の小さな圧縮ファイルを 1 つの大きな圧縮ファイルに結合したりできます。これは、大きなファイルまたは多数のファイルを操作する場合に便利です。この記事があなたの開発作業に役立つことを願っています。
以上がPHP ZipArchive を使用して圧縮パッケージを分割およびマージするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。