Como extrair um arquivo ZIP que tem uma senha usando apenas PHP?

Eu vi apenas uma pergunta aqui, mas não responde à minha pergunta. Eu estou executando um servidor LAMP típico que tem mais atualizado PHP 5 e MYSQL 5 com Redhat Linux.

Eu preciso encontrar uma solução somente PHP porque o meu host não me permite usar o shell.

Aqui está o meu código que extrai ZIPs que não estão com senha de uploads do vBulletin para outro diretório:

if ($_GET['add'] == TRUE){
$zip = new ZipArchive;
 $res = $zip->open($SOURCE FOLDER);
 if ($res === TRUE) {
     $zip->extractTo('$DESTINATION FOLDER/');
     $zip->close();
     echo 'File has been added to the library successfuly';
     //Add a flag to that file to indicate it has already been added to the library.
     mysql_query("UPDATE attachment SET library = 1 WHERE filedataid='$fileid'");    
 } else {
     echo 'A uncompression or file error has occured';
 }}

Deve haver alguma maneira de fazer isso usando apenas PHP, certamente! Obrigado.

ATUALIZAÇÃO: Meu host me informa que o gzip está instalado no servidor, mas não o 7-Zip. Eu estou olhando para o acesso shell também.