Как добавить только относительный путь с PHP ZipArchive :: addPattern?

Так же просто, как заголовок:

$zipFileName = $folderName . DIRECTORY_SEPARATOR . strtolower(sprintf('bundle_%s.zip', date('F_Y', strtotime('last month'))));

$zip = new \ZipArchive();
if ($zip->open($zipFileName, \ZIPARCHIVE::CREATE )!==TRUE) {
throw new \Exception("cannot open <$zipFileName>\n", 500);
}

$zip->addPattern('/\.csv$/', $folderName, ['remove_path' => $folderName]);
$zip->close();

Это создает zip-файл с указанием пути в качестве абсолютного пути на компьютере:

Итак, я открываю полученный zip и получаю:

/tmp/bundle/file1.csv
/tmp/bundle/file2.csv
/tmp/bundle/file3.csv

Но я хотел бы получить:

file1.csv
file2.csv
file3.csv

Не уверен, что еще попробовать?

1

Решение

    $zip         = new \ZipArchive();
if($zip->open($zipFullPath, \ZIPARCHIVE::CREATE) !== TRUE)
{
throw new \Exception("Cannot open <$zipFullPath>\n", 500);
}
foreach(glob($folderName . DIRECTORY_SEPARATOR . '*') as $file)
{
$zip->addFile($file, basename($file));
}
$zip->close();

Вот как я это сделал. Не повезло с функцией addPattern.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]