PHP распаковать файл в каталог, изменить имя распакованной папки

Можно ли перехватить разархивирование каталога, чтобы изменить имя будущей разархивированной папки?

Я использую класс PHP ZipArchive, чтобы сделать это. Распаковка работает нормально, я просто хочу добавить метку времени к имени распакованной папки.

$zip = new ZipArchive;
if ($zip->open($zipFile, ZipArchive::CREATE) === TRUE) {
$zip->extractTo($destinationFolder);
$zip->close();
} else {
return FALSE;
}

РЕДАКТИРОВАТЬ: чтобы дополнительно объяснить необходимость, моя функция в настоящее время перезаписывает папки с тем же именем в точке разархивирования. Я надеюсь прикрепить метку времени к новой папке, чтобы этого не случилось.

2

Решение

Я предполагаю, что вам нужно распаковать файл в определенную папку с текущей датой, исходя из этого, вы можете попробовать:

$zipFile = "test.zip";
$fnNoExt = basename($zipFile, ".zip");
$date = new DateTime();
$now = $date->getTimestamp();
$destinationFolder = "/some/path/$fnNoExt-$now";

$zip = new ZipArchive;
if ($zip->open($zipFile, ZipArchive::CREATE) === TRUE) {
if(!is_dir($destinationFolder)){
mkdir($destinationFolder,  0777);
}
$zip->extractTo($destinationFolder);
$zip->close();
} else {
return FALSE;
}

Получит ток Timestamp и добавьте его к имени папки, если папка не существует, создайте ее и разархивируйте в нее.


ОБНОВИТЬ:

Я обновил код, чтобы он получил zipFilename без расширения и использовать его для нового имени каталога, в этом случае он создаст новый каталог с именем test-1443467510


НОТА:
Убедитесь, что у вас есть права на запись /some/path/

3

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

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

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