(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.1.0)
ZipArchive::open — ZIP ファイルアーカイブをオープンする
新しい、または既に存在する zip アーカイブを 読み込み/書き込み/変更用にオープンします。
libzip 1.6.0 以降では、空のファイルは有効なアーカイブではなくなりました。
filenameオープンする ZIP アーカイブのファイル名。
flagsアーカイブのオープンに使用するモード。
成功した場合に true、失敗した場合は false を返し、
エラー時には以下のエラーコードを返します。
ZipArchive::ER_EXISTSZipArchive::ER_INCONSZipArchive::ER_INVALZipArchive::ER_MEMORYZipArchive::ER_NOENTZipArchive::ER_NOZIPZipArchive::ER_OPENZipArchive::ER_READZipArchive::ER_SEEK例1 オープンおよび展開
<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip');
if ($res === TRUE) {
echo '成功';
$zip->extractTo('test');
$zip->close();
} else {
echo '失敗、コード:' . $res;
}
?>例2 アーカイブの作成
<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip', ZipArchive::CREATE);
if ($res === TRUE) {
$zip->addFromString('test.txt', 'ここにファイルの内容を書きます');
$zip->addFile('data.txt', 'entryname.txt');
$zip->close();
echo '成功';
} else {
echo '失敗';
}
?>例3 一時的なアーカイブの作成
<?php
$name = tempnam(sys_get_temp_dir(), "FOO");
$zip = new ZipArchive;
$res = $zip->open($name, ZipArchive::OVERWRITE); /* 空のファイルに切り詰めても無効です */
if ($res === TRUE) {
$zip->addFile('data.txt', 'entryname.txt');
$zip->close();
echo '成功';
} else {
echo '失敗';
}
?>