Как удалить корневой путь при создании zip-архива из каталога? - PullRequest
0 голосов
/ 31 октября 2018

Я делаю 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();

Как я могу удалить корневой путь?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...