LaravelConf Taiwan 2020 CFP Started

ZipArchive::open

(PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.1.0)

ZipArchive::openZIP ファイルアーカイブをオープンする

説明

ZipArchive::open ( string $filename [, int $flags ] ) : mixed

新しい、または既に存在する zip アーカイブを 読み込み/書き込み/変更用にオープンします。

libzip 1.6.0 以降では、空のファイルは有効なアーカイブではなくなりました。

パラメータ

filename

オープンする ZIP アーカイブのファイル名。

flags

アーカイブのオープンに使用するモード。

返り値

エラーコード

成功した場合に TRUE、それ以外の場合にエラーコードを返します。

  • ZipArchive::ER_EXISTS

    ファイルが既に存在します。

  • ZipArchive::ER_INCONS

    Zip アーカイブに矛盾があります。

  • ZipArchive::ER_INVAL

    無効な引数です。

  • ZipArchive::ER_MEMORY

    メモリの確保に失敗しました。

  • ZipArchive::ER_NOENT

    ファイルが存在しません。

  • ZipArchive::ER_NOZIP

    zip アーカイブではありません。

  • ZipArchive::ER_OPEN

    ファイルを開けません。

  • ZipArchive::ER_READ

    読み込みエラー。

  • ZipArchive::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($nameZipArchive::OVERWRITE); /* 空のファイルに切り詰めても無効です */
if ($res === TRUE) {
    
$zip->addFile('data.txt''entryname.txt');
    
$zip->close();
    echo 
'成功';
} else {
    echo 
'失敗';
}
?>
add a note add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top