(PHP >= 8.0.0, PECL zip >= 1.18.0)
ZipArchive::replaceFile — Substitui um arquivo no arquivo ZIP por um caminho fornecido
$filepath,$index,$start = 0,$length = ZipArchive::LENGTH_TO_END,$flags = 0Substitui um arquivo no arquivo ZIP por um caminho fornecido.
Nota: Para portabilidade máxima, é recomendável sempre usar barras normais (
/) como separador de diretório em nomes de arquivos ZIP.
filepathO caminho para o arquivo a ser adicionado.
indexO índice do arquivo a ser substituído, seu nome não é alterado.
startPara cópia parcial, posição inicial.
length
       Para cópia parcial, comprimento a ser copiado,
       se ZipArchive::LENGTH_TO_END (0), o tamanho do arquivo é usado,
       se ZipArchive::LENGTH_UNCHECKED, o arquivo inteiro é usado
       (a partir de start).
      
flags
       Máscara de bits consistindo em
       ZipArchive::FL_ENC_GUESS,
       ZipArchive::FL_ENC_UTF_8,
       ZipArchive::FL_ENC_CP437,
       ZipArchive::FL_OPEN_FILE_NOW.
       O comportamento dessas constantes é descrito na página
       constantes do ZIP.
      
| Versão | Descrição | 
|---|---|
| 8.3.0, PECL zip 1.22.1 | ZipArchive::FL_OPEN_FILE_NOWfoi adicionado. | 
| 8.3.0, PECL zip 1.22.2 | ZipArchive::LENGTH_TO_ENDeZipArchive::LENGTH_UNCHECKEDforam adicionados. | 
Este exemplo abre um arquivo ZIP test.zip e substitui a entrada do índice 1 pelo arquivo /path/to/index.txt.
Exemplo #1 Abrir e substituir
<?php
$zip = new ZipArchive;
if ($zip->open('test.zip') === TRUE) {
    $zip->replaceFile('/path/to/index.txt', 1);
    $zip->close();
    echo 'ok';
} else {
    echo 'falha';
}
?>
