ZipArchive::replaceFile

指定されたパスのファイルにアーカイブの一部を置き換える

説明

public bool ZipArchive::replaceFile(
    string $filepath,
    int $index,
    int $start = 0,
    int $length = ZipArchive::LENGTH_TO_END,
    int $flags = 0
)

指定されたパスのファイルにアーカイブの一部を置き換えます。

注意: ポータビリティを考慮して、ZIP ファイル名のディレクトリ区切り文字には常にスラッシュ (/) を使うことを推奨します。

パラメータ

filepath

追加するファイルのパス。

index

置き換えるファイルのインデックス。名前は変更されません。

start

ファイルを一部コピーする場合の開始位置。

length

ファイルを一部コピーする場合の、コピーする長さ。 ZipArchive::LENGTH_TO_END (0) を指定すると、 ファイルサイズのぶんだけコピーします。 ZipArchive::LENGTH_UNCHECKED を指定すると、 start の位置から)ファイル全体をコピーします。

flags

以下のビットマスクの組み合わせ: ZipArchive::FL_ENC_GUESS, ZipArchive::FL_ENC_UTF_8, ZipArchive::FL_ENC_CP437, ZipArchive::FL_OPEN_FILE_NOW。 これらの定数の振る舞いは、定義済みの定数 で説明しています。

戻り値

成功した場合に true を、失敗した場合に false を返します。

変更履歴

バージョン 説明
8.3.0, PECL zip 1.22.1 ZipArchive::FL_OPEN_FILE_NOW が追加されました。
8.3.0, PECL zip 1.22.2 ZipArchive::LENGTH_TO_ENDZipArchive::LENGTH_UNCHECKED が追加されました。

この例は、ZIP ファイルアーカイブ test.zip をオープンし、インデックス1 のエントリを /path/to/index.txt に置き換えます。

例1 オープンおよび追加

<?php
$zip = new ZipArchive;
if ($zip->open('test.zip') === TRUE) {
    $zip->replaceFile('/path/to/index.txt', 1);
    $zip->close();
    echo 'ok';
} else {
    echo 'failed';
}
?>

参考

  • ZipArchive::addFile