[PHP] Rekurencyjne dodawanie plików

0

Wiem że komuś kto bardziej odpowiada na problemy przystoi zakładać bardziej kontrowersyjne tematy, ale po prostu pracuję nad skryptem od 2 dni i już mi mózg staje. Piszę sobie skrypt MiniSVN w PHP dla pewnego niezbyt amatorskiego projektu gry i potrzebuję spakować w Zipkę konkretny folder wraz z podkatalogami i podkatalogami tych podkatalogów. Rekurencja zawsze mnie wkurwiała, ale teraz to już na prawdę nie wiem jak to uchwycić.

Dla przykładu mam funkcję dodającą:

$zip->addFromFile($path, $name);

$path zawiera ścieżkę do danego pliku
$name oznacza nazwę tego pliku w archiwum (obsługiwane są też foldery, np.: script/js.js spowoduje automatyczne utworzenie folderu script w archiwum)

Mam jeszcze jakiś $rootpath do tego folderu. Jak to zrobić, żeby mi tak jak wyżej pisało dodało wszystkie katalogi i ich zawartości?

0

e? machnij se rekurencyjna funkcje w ktorej bedziesz mial opendir, readdir i closedir :|

0

Nie mam jak tego sprawdzić... bo mi zawsze zip->close zwraca false i nic się nie dzieje.
Niezaleznie od tego co zrobię, ale poza tym żadnych błędów, zatem to powinno działać...

$zip = new ZipArchive;
function packDir($path)
{
	global $zip;
	$dir = opendir($path);
	readdir(); readdir();
	while($file = readdir($dir))
	{
			if(is_dir($path.'/'.$file) === TRUE)
				packDir($path.'/'.$file);
			else
				$zip->addFile($path.'/'.$file, $path.'/'.$file);
	}
}

if ($zip->open('./test.zip', ZIPARCHIVE::CREATE) === TRUE) {
	
		packDir('do_spakowania');
    $zip->close();
} else {
    echo 'failed';
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1