0

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");
}
4

1 に答える 1

1

代わりに行を印刷してからターミナルで実行して、実際に期待どおりに機能するかどうかを確認できます。入力にエスケープする必要のある奇妙な文字が含まれている可能性があります。PHP変数を引用符で囲んでください。スペースを含むファイル名は危険な場合があります。escapeshellargおよびescapeshellcmdを参照してください。

于 2010-05-21T00:42:06.137 に答える