ZipArchiveクラスを用いたzipファイルの作成と展開
PHP 5.2.11 (cli)で確認。
作成
<?php # create_zip.php $zip = new ZipArchive(); $ret = $zip->open('test.zip', ZIPARCHIVE::CREATE); if (TRUE !== $ret) { error_log("Can't create zip: " . $ret); exit(1); } // ディレクトリの作成 $zip->addEmptyDir('bar'); // テキストファイルを追加 $zip->addFile('test.txt', 'bar/test.txt'); // zipファイル内にテキストファイルを作成し、内容を追加 $zip->addFromString('foo.txt', '日本語でもおk?'); $zip->close();
展開
<?php # extract_zip.php $zip = new ZipArchive(); $ret = $zip->open('test.zip'); if (TRUE !== $ret) { error_log("Can't open zip: " . $ret); exit(1); } // ファイルの展開。該当ディレクトリがなければ作成される。 $zip->extractTo('./extracted/'); $zip->close();