Извлеките файл из zip-архива, затем переименуйте его

#php

#php

Вопрос:

У меня есть этот файл, который загружается по адресу:

 DownloadFile($reportDownloadUrl, $DownloadPath);
 

Но это zip-файл. Внутри него создается файл CSV со случайным именем, т.е random_name.csv

Как мне извлечь эту папку abc.zip в php и переименовать этот файл со случайным именем в new_name.csv

Проблема в том, что я не могу использовать

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

поскольку у меня нет currentname .

Ответ №1:

Этот код проверяет файл, 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();                   
}