Команда zip -P не работает для создания защищенного паролем файла zip

Сначала я создал скрипт для создания zip-файла конкретного каталога, а затем удалял все файлы, кроме zip, из отлично работающего каталога.

Но теперь я применил команду пароля zip -P в скрипт, чтобы сделать ее защищенной паролем, которая не работает,

Когда я попытался извлечь файл после загрузки, он распаковывается без запроса пароля. Пожалуйста, дайте мне понять, что я делаю.

вот как я пытался это сделать:

exec('cd ' . escapeshellarg($directory_location) . ' ; zip -r ' .escapeshellarg($directory_location).'/'.escapeshellarg($zipname) . ' * ; '.$command.' '.escapeshellarg($zipname).' chmod 777 '.escapeshellarg($zipname).'; find . -type f -not -name \''.escapeshellarg($zipname).'\' -exec rm \{\} \; ' ); 

это результат:

 cd '/home/example/public_html/downloads/9c1f97ab931b9f4dc461c164f119a340/20' ; zip -r '/home/example/public_html/downloads/9c1f97ab931b9f4dc461c164f119a340/20'/'Xm18u_download.zip' * ; zip -P 'testPassword' '/home/example/public_html/downloads/9c1f97ab931b9f4dc461c164f119a340/20'/'Xm18u_download.zip' 'Xm18u_download.zip' ; 'Xm18u_download.zip' chmod 777 'Xm18u_download.zip'; find . -type f -not -name ''Xm18u_download.zip'' -exec rm \{\} \; 

ЗАКРЫТО (найдено решение)

Я получил решение, это работает с рекурсивным режимом создания zip-файла:

 zip -r -P <password> 

для меня это:

 $command = '-P '.escapeshellarg($password); exec('cd ' . escapeshellarg($directory_location) . ' ; zip -r '.$command.' ' .escapeshellarg($directory_location).'/'.escapeshellarg($zipname) . ' * ; '.escapeshellarg($zipname).' chmod 777 '.escapeshellarg($zipname).'; find . -type f -not -name \''.escapeshellarg($zipname).'\' -exec rm \{\} \; ' ); 

Надеюсь, это поможет кому-то еще;)