从zip归档文件中提取文件,然后重命名它


Extract a file from a zip archive then rename it

我有这个文件下载到:

DownloadFile($reportDownloadUrl, $DownloadPath);

但它是一个zip文件。在它里面,创建一个CSV文件随机命名为random_name.csv

我如何提取这个文件夹abc.zip在php和重命名这个文件随机命名为new_name.csv

问题是我不能使用

$zip->renameName('currentname.csv','newname.csv');

因为我没有currentname

这段代码检查zipLocation中的文件,然后遍历它们以检查是否存在csv文件。如果它发现它在目录中以其原始名称复制某些内容,然后以新名称复制另一个副本。

$zipLocation = "path/to/file.zip";
$zip = new ZipArchive;
if ($zip->open($zipLocation) === true) {
    for($i = 0; $i < $zip->numFiles; $i++) {
        $filename = $zip->getNameIndex($i);
        if (pathinfo($filename, PATHINFO_EXTENSION)=="csv"){
            $fileinfo = pathinfo($filename);
            copy("zip://".$zipLocation."#".$filename, "./newname.csv");
            copy("zip://".$zipLocation."#".$filename, "./".$fileinfo['basename']);
        }
    }                   
    $zip->close();                   
}