Laravelでのzip圧縮と展開の方法【現役エンジニアが解説】

PROGRAM

今回は、Laravelでのzip圧縮と展開の方法について、簡単に解説していきます。

現在はZipArchiveを使う

Laravelでは一昔前まではZipperパッケージが利用されていました。

しかし、現在は更新が止まっているため、PHPのZipArchiveクラスを利用しましょう。

したがって、ここでは、PHPのZipArchiveクラスでのzip圧縮と展開の方法をまとめます。

ZipArchiveでzip圧縮

以下のコードはzip圧縮の一つの例です。

$files = array('hoge1.txt', 'hoge2.txt');
$zip = new ZipArchive();
$zip->open(public_path().'/hoge.zip', ZipArchive::CREATE);
foreach($files as $file){
	$zip->addFile($file);
}
$zip->close();

まず、ZipArchiveをインスタンス化し、openメソッドでzipを作り始めます。

addFileメソッドでファイルを追加していき、closeメソッドでzipを作り終えます。

ZipArchiveでzip展開

下記のコードはzip展開のサンプルの一つです。

$file = public_path().'/hoge.zip';
$to = public_path().'/hoge/';
$zip = new ZipArchive();
$zip->open($file);
$zip->extractTo($to);
$zip->close();

最初にZipArchiveをインスタンス化し、openメソッドで展開するzipを指定します。

その後、extractToメソッドで展開先を指定し、最後にcloseメソッドで展開を終了します。