Buonasera,
con uno script PHP sto provando ad aprire un file zip protetto da password.
Sono su server Linux ed ho già provato con queste funzioni e con diverse query (non prendete il codice alla lettera, ho scritto tutto in fila soltanto per essere breve):
Codice PHP:
$query "`which unzip` $zip_file"# funziona se il file non è protetto da password
#oppure
$query "`which unzip` -P $zipPassword $zip_file"# non funziona in nessun caso
# oppure 
$query "`which unzip` $zip_file -P $zipPassword"# non restituisce errori, ma non funziona

/* con le seguenti funzioni e le precedenti query (una combinazione
alla volta) ottengo sempre i medesimi risultati */
shell_exec($query);
#oppure
exec($query);
#oppure
system($query); 
Ah, nelle query ho provato anche senza "BACKTICKS" e/o senza "which"... nessun cambiamento...

Ho a disposizione le estensioni di PHP php_zip e zlib quindi ho provato con la classe ZipArchive:
Codice PHP:
$zip_file "mioFile.zip";
$src_dir "miaDirectorySorgente";
$extract_dir "miaDirectoryDiDestinazione";

zip = new ZipArchive();

$res $zip->open($src_dir.'/'.$zip_file);
if (
$res === TRUE) {
    
$zip->extractTo($extract_dir '/');
    
$zip->close();
    
$error 'ok';   
} else {
    
$error 'failed';
}
echo 
$error
Funziona perfettamente nel caso di archivio non protetto. Se lo zip è protetto da password, invece, mi estrae i file ma in realtà sono tutti vuoti. Purtroppo non ho idea di come si imposti la password in questa classe...
Mi sono documentato (ZipArchive:pen e ZipArchive::extractTo) ma non ho trovato niente di interessante.

Qualcuno sa darmi qualche dritta?
Grazie!