2010-05-21 43 views
0

我使用php來調用gpg,但我得到一個管道錯誤。我認爲,如果我從文件中讀取密碼,那麼我可以將它傳遞給命令本身?但是,我不斷收到:語法錯誤:「|」意外PHP/GnuPG解密 - 語法錯誤?

下面的代碼:

(注:文件被遍歷在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"); 
} 

回答

1

也許你可以打印線代替,然後在其中運行終端,看看他們是否真的按預期工作。 也許你的輸入中有一些奇怪的字符需要轉義,並且請把你的PHP變量放在引號中,帶空格的文件名可能是危險的。見escapeshellargescapeshellcmd