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

时间:2016-10-16 14:06:58

标签: php

我将此文件下载到:

DownloadFile($reportDownloadUrl, $DownloadPath);

但它是一个zip文件。在其中,使用随机名称random_name.csv

创建CSV文件

如何在php中提取此文件夹abc.zip并使用随机名称将此文件重命名为new_name.csv

问题是我无法使用

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

因为我没有currentname

1 个答案:

答案 0 :(得分:3)

此代码检查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();                   
}