Laravelでのzip圧縮と展開の方法【現役エンジニアが解説】
今回は、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メソッドで展開を終了します。