我正在使用php来调用gpg,但是我收到了一个管道错误。我想如果我从文件中读入密码,那么我可以将它传递给命令本身吗?但是,我一直得到:语法错误:“|”意想不到
以下是代码:
(注意:文件正在foreach循环中迭代......)
foreach($files as $k => $v) {
$encrypted = $v;
$filename = explode('.',$v);
$decrypted = $filename[0].'.txt';
shell_exec("echo $passphrase | gpg --no-tty --passphrase-fd 0 -o $decrypted -d $encrypted");
}
答案 0 :(得分:1)
也许您可以打印线条然后在终端中运行它们以查看它们是否真的按预期工作。 也许你的输入中有一些奇怪的字符需要被转义,请把你的PHP变量放在引号中,带空格的文件名可能很危险。请参阅escapeshellarg和escapeshellcmd。