使用 PHP ZipArchive 保留从 ZIP 中提取的文件的修改日期

Bad*_*dal 4 php zip ziparchive

我用来ZipArchive从 ZIP 中提取文件。

这是我正在使用的代码

$zip = new ZipArchive;
$res = $zip->open($file);
if ($res === TRUE) {
    $zip->extractTo('test/');
    $zip->close();
}
Run Code Online (Sandbox Code Playgroud)

它工作正常,但提取文件的最后修改日期更改为当前时间。

如何保留提取文件的原始最后修改日期?

the*_*uts 6

我改进了 Badal 的答案以应用于 ZIP 中的所有文件(目录仍将具有当前时间戳):

$res = $zip->open($filename);
if($res === true) {
    $zip->extractTo($dataDir);

    for($i=0; $i<$zip->numFiles; $i++){
        touch($dataDir . $zip->statIndex($i)['name'], $zip->statIndex($i)['mtime']);
    }

    $zip->close();
}
Run Code Online (Sandbox Code Playgroud)

$dataDir需要以斜杠结尾。