Я делаю zip-архив из каталога mydir
, хранящегося в /my/files/inside/here/
.
Я хочу, чтобы архив mydir.zip
содержал только файлы и директории из mydir
.
Проблема, однако, заключается в том, что теперь я получаю полный путь rooth /my/files/inside/here/mydir/
, когда распаковываю ..
$mypath = "/my/files/inside/here/";
$dirname_to_zip = "mydir";
$zip = new ZipArchive();
$zipfile_with_path = $mypath.$dirname_to_zip.".zip";
if ($zip->open($zipfile_with_path, ZipArchive::CREATE)!==TRUE)
die("failed to create zip");
// Create recursive directory iterator
$files = new RecursiveIteratorIterator(
new RecursiveDirectoryIterator($mydir.$dirname_to_zip),
RecursiveIteratorIterator::LEAVES_ONLY
);
foreach ($files as $name => $file)
{
// Skip directories (they would be added automatically)
if (!$file->isDir())
{
// Get real and relative path for current file
$filePath = $file->getRealPath();
$relativePath = substr($filePath, strlen($dirname_to_zip) );
// Add current file to archive
$zip->addFile($filePath, $relativePath);
}
}
$zip->close();
Как я могу удалить корневой путь?