ZipArchive::replaceFile

Replace file in ZIP archive with a given path

&reftitle.description; public `bool` `ZipArchive::replaceFile` `string` `filepath` `int` `index` `int` `start` 0 `int` `length` ZipArchive::LENGTH_TO_END `int` `flags` 0

Replace file in ZIP archive with a given path.

&zip.filename.separator;
&reftitle.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 `ZipArchive::LENGTH_TO_END` (0) the file size is used, if `ZipArchive::LENGTH_UNCHECKED` the whole file is used (starting from `start`).

`flags`

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

&reftitle.returnvalues;

&return.success;

&reftitle.changelog;

&Version; | &Description;
8.3.0 / 1.22.1 | `ZipArchive::FL_OPEN_FILE_NOW` was added.
8.3.0 / 1.22.2 | `ZipArchive::LENGTH_TO_END` and `ZipArchive::LENGTH_UNCHECKED` were added.

&reftitle.examples;

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

### 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';
    }
    ?>

&reftitle.seealso;

- `ZipArchive::addFile`