PHP压缩解压缩和重命名

PHP压缩解压缩和重命名,php,zip,file-rename,Php,Zip,File Rename,下面的代码很有用 $zip = new ZipArchive; if($zip->open($path) === TRUE) { $zip->renameName('list.csv', 'list'.$batch_id.'.csv'); $zip->extractTo('list_output'); $zip->close(); } zip中的文件将被重命名,但不会解压缩。如果我删除renameName行,那么它将很好地提取。我需要它同时做这两件事。

下面的代码很有用

$zip = new ZipArchive;
if($zip->open($path) === TRUE) {
   $zip->renameName('list.csv', 'list'.$batch_id.'.csv');
   $zip->extractTo('list_output');
   $zip->close();
}
zip中的文件将被重命名,但不会解压缩。如果我删除renameName行,那么它将很好地提取。我需要它同时做这两件事。

怎么样

$zip = new ZipArchive;
if($zip->open($path) === TRUE) {
   $zip->extractTo('list_output');
   $zip->close();
}

rename('list_output/list.csv', 'list_output/list'.$batch_id.'.csv');

在CPU/内存方面也会更容易。

看看如果在两次操作之间关闭zip并重新打开会发生什么。解压后是否尝试重命名它?疯狂快速回答,我会使用这种方法,仍然好奇为什么我的方法不起作用,但你的方法更好。我的最佳猜测是,你需要关闭它。然后重新开放。