Raketenwilli: Was bei mir funktioniert ...

Beitrag lesen

Das folgende "tut es". Ich teste allerdings in der Konsole:

<?php
	$folder = '0815';
	$target_path = '/tmp/test/upload/' . $folder;
	$zip_name = $target_path . '/' . $folder . '.zip';
	$zip_files = $target_path;
	$sys = 'zip ' 
         . escapeshellarg( $zip_name ) 
         . ' -0 -j -v ' 
         . escapeshellarg( $zip_files) 
         . '/*';
	echo $sys . PHP_EOL;
	$fp = popen( $sys, 'r' );
	
	fpassthru( $fp );
    #exit;
	// Dateien im Folder können jetzt gelöscht werden
	foreach ( new DirectoryIterator( $target_path ) as $fileInfo ) {
		if (
				( ! $fileInfo->isDot() ) 
			AND ( $fileInfo->getFilename() != $folder.".zip" )
		) {
			echo $fileInfo->getPathname() . ' soll gelöscht werden.' . PHP_EOL;
			#unlink( $fileInfo->getPathname() );
		}
	}

Die Zeile fpassthru( $fp ) gibt nun aus, was wie gezippt wurde und was warum nicht.