ZipArchive::replaceFile

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

ZipArchive::replaceFileReplace file in ZIP archive with a given path

Description

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

Replace file in ZIP archive with a given path.

Note: For maximum portability, it is recommended to always use forward slashes (/) as directory separator in ZIP filenames.

Parameters

filepath

The path to the file to add.

index

The index of the file to be replaced, its name is unchanged.

start

For partial copy, start position.

length

For partial copy, length to be copied, if 0 or -1 the whole file (starting from start) is used.

flags

Bitmask consisting of ZipArchive::FL_ENC_GUESS, ZipArchive::FL_ENC_UTF_8, ZipArchive::FL_ENC_CP437. The behaviour of these constants is described on the ZIP constants page.

Return Values

Returns true on success or false on failure.

Examples

This example opens a ZIP file archive test.zip and replaces index 1 entry with /path/to/index.txt.

Example #1 Open and replace

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

See Also