2010-05-21 6 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을 참조하십시오.