ZipArchive::replaceFile

(PHP >= 8.0.0, PECL zip >= 1.18.0)

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

説明

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

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

注意: ポータビリティを考慮して、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 / 1.22.1 ZipArchive::FL_OPEN_FILE_NOW が追加されました。
8.3.0 / 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';
}
?>

参考

add a note add a note

User Contributed Notes

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