$zip = new ZipArchive; $zip->open('update-'.$version.'.zip', ZipArchive::CREATE | ZipArchive::OVERWRITE); $files = new RecursiveIteratorIterator( new RecursiveDirectoryIterator($rootPath), 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(); // Add current file to archive if (strpos($relativePath, "nstall\\") or strpos($relativePath, "ake-update.php") or strpos($relativePath, "old\\") or strpos($relativePath, "zepsuty") or strpos($relativePath, "lobal\config.php") or strpos($relativePath, "vs\\") or strpos($relativePath, "git\\") or strpos($relativePath, "idea\\") or strpos($relativePath, "pload\\") or strpos($relativePath, "cache\\") or strpos($relativePath, 'ploads\\') or strpos($relativePath, "emplates_c")) { } else { $zip->addFile($filePath, $filePath); } } } // Zip archive will be created only after closing object $zip->close();
i kiedy wypakowuje to wszystkie pliki wyrzuca mi do folderu... nie tworzy mi subfolderów i nie wypakowuje plików z subfolderów do nich
Wytłumaczy mi ktoś dlaczego ten z**any PHP tak wypakowuje pliki ?


Dziękuję za tak wyczerpujące odpowiedzi.... Jesteście fantastyczni,,,
Czy naprawdę PHP jest tak zje**ane że nie można kompresować plików za pomocą niego ? Może wprowadzą to w wersji 50.0.49 ?
a propos wypakowywania:
// Zip file name $filename = 'update-0.0.1-alpha.zip'; $zip = new ZipArchive; $res = $zip->open($filename); if ($res === TRUE) { // Unzip path $path = _PATH."/"; // Extract file $zip->extractTo($path); $zip->close(); } else { echo 'Błąd aktualizacji! Skontaktuj się z firmą <a href="mailto:kontakt@oxi-jon.pl">Bomb of Creative</a>!'; }
robię to w ten piękny sposób... nie wiem czy może można jeszcze inaczej coś tu napisać bo to jest tak ****cie obszerny kod że pisałem go przez 4 lata świetlne