Extrair subpastas do arquivo ZIP em PHP

Eu estou usando um script php para descompactar o arquivo ZIP. mas esse script descompacta apenas um nível de diretórios sem extrair os subdiretórios desse arquivo no script:

$zip = new ZipArchive;
if ($zip->open('test.zip') === TRUE) {
    $zip->extractTo('/my/destination/dir/');
    $zip->close();
    echo 'ok';
} else {
    echo 'failed';
}

por exemplo: se o arquivo test.zip contiver 2 pastas: folder1 \ file.png, folder2 \ folder3 \ file3.png

depois de extrair esse arquivo ZIP, eu só vejo a pasta1 *. * e a pasta2 *. *, mas sem a pasta do subdiretório3.

Como posso melhorar isso?

questionAnswers(3)

yourAnswerToTheQuestion