2017-11-07 1 views
0

저는 cmd.exe에서 실행되어야하며 몇 가지 매개 변수를 제공해야하는 프로그램을 가지고 있습니다. 명령은 다음과 같습니다.PHP exec가 출력을 반환하지 않습니다.

query.exe USERNAME PASSWORD WMI_QUERY MACHINE 

이 프로그램은 정상적으로 작동합니다. 하지만 다음 코드로 PHP에서 실행하려고하면 :

function execute_query($ip, $username, $password, $query){ 

    $runCMD ="query.exe " . $username . " " . $password . ' "' .$query . '" ' . $ip; 
    echo exec($runCMD); 
    print_r ($stdout); 
} 

출력이 없습니다. 프로그램이 실행되고 출력을 성공적으로 반환하지만 프로세스가 성공적으로 종료되었지만 아무것도 표시되지 않습니다. 나는 윈도우와 XAMPP를 PHP 7.1과 함께 사용하고있다. 나는 shell_exec을 사용하여 지쳤으나, 어떤 행운도 없었다. 다른 아이디어?

+1

'간부를 ()'는 출력을 터미널의 각 출력 행에 대한 배열로 반환합니다. iirc shell_exec는 아무것도 반환하지 않습니다. 참조로 전달 된 배열 매개 변수를 확인하십시오 - http://php.net/manual/en/function.exec.php – brianforan

+0

또한 $ stdout이 정의되지 않았습니다 – brianforan

+0

wooops, 내 첫 코멘트를 무시하고 왜 내가 생각하는지 모르겠다. shell_exec는 아무것도 반환하지 않지만 $ stdout은 여전히 ​​정의되지 않았습니다 – brianforan

답변

0

나는 보통 간단하게 사용

passthru("the_command 2>&1"); 

2> & 1 비트 명령이 실패 할 때 출력이 아마 인 곳이다 STDOUT에 STDERR을 리디렉션하는 것입니다 ...

+0

또한 출력을 캡처하기 위해 ob_start() 및 ob_get_contents()를 사용할 수 있습니다. –

+0

작동하지 않았지만 아무 것도 출력되지 않았습니다. –

관련 문제