読者です 読者をやめる 読者になる 読者になる

作業ノート

様々なまとめ、雑感など

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();