Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php zip-P命令无法创建密码保护zip文件_Php_Linux_Zip - Fatal编程技术网

Php zip-P命令无法创建密码保护zip文件

Php zip-P命令无法创建密码保护zip文件,php,linux,zip,Php,Linux,Zip,首先,我编写了一个脚本,用于创建特定目录的zip文件,然后从工作正常的目录中删除除zip以外的所有文件 但现在我在脚本中实现了zip-p password命令,以使其受密码保护,但不起作用 当我试图在下载后提取文件时,它正在提取而不询问任何密码。请纠正我的错误,告诉我我做错了什么 我就是这样尝试的: exec('cd ' . escapeshellarg($directory_location) . ' ; zip -r ' .escapeshellarg($directory_location

首先,我编写了一个脚本,用于创建特定目录的zip文件,然后从工作正常的目录中删除除zip以外的所有文件

但现在我在脚本中实现了zip-p password命令,以使其受密码保护,但不起作用

当我试图在下载后提取文件时,它正在提取而不询问任何密码。请纠正我的错误,告诉我我做错了什么

我就是这样尝试的:

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 \{\} \; ' );