2012-07-04 4 views
0

내 PHP 스크립트에서 실행 파일을 실행하고 명령 줄에 사용 된 명령은
입니다. 여기서 profit은 실행 파일이고 profit.in은 입력 파일입니다. 명령의 실행했을 때 나는 프롬프트파일에 명령을 전달 하시겠습니까?

+0

'system' 함수로 시도하십시오 –

+0

profit.in 파일은 어디에 있습니까? PHP 스크립트가 실행될 때 profit.in 파일이 PHP 스크립트가 실행중인 디렉토리와 같은 디렉토리에 있는지 반드시 확인하십시오. – BugFinder

+0

@ BugFinder 예 오래 전에 보았습니다 ... profit.in과 PHP 스크립트는 모두 같은 폴더 –

답변

0

간부는, $profit에 결과를 반환 그것을 이런 식으로하지 않습니다 같은 프로그램을 실행하기위한 다음과 같은 PHP 스크립트를 썼습니다 : 또한

exec('C:/xampp/htdocs/example/profit.exe < profit.in',$results,$status); 
if ($status === 0) 
{ 
    var_dump($results);//will be an array 
} 

확인을 그 경로에 매개 변수 파일이 정확하면 스크립트에 의해 생성되지 않는 경우 절대 경로를 사용하는 것이 가장 좋습니다.

exec('C:\\xampp\\htdocs\\example\\profit.exe < profit.in',$results,$status); 

은 무엇입니까 :

당신의 exec 통화 이후
당신이 창 상자에 작업하고 있는게 틀림 없어 참고, 경로 분리도 탈출해야 백 슬래시,이다 그것은, imo처럼 보일 것입니다.

두 번째 가능한 문제는 Windows 시스템에서 xampp을 사용하고 있다는 것입니다. 명령 줄에서이 스크립트를 실행하는 경우 php.exe 대신 을 사용하고 있는지 확인하십시오.

+0

Thanls @Elias :)를 사용하여 프로그램을 실행하고 있지는 않지만 출력은 배열로 인쇄됩니다 ... 어떻게 배열을 제거하고 일반 출력을 문자열로 인쇄 할 수 있습니까? –

+0

원하는대로, 다른 배열과 마찬가지로 사용할 수 있습니다. 'echo implode (' "\ n", $ results);'작은 따옴표를 사용할 때 큰 따옴표가 중요합니다.'\ n'은 문자열로 처리되고, 줄 바꿈이 아닙니다. 배열 (while ($ line = array_shift ($ results)) 또는 for ($ i = 0; $ i

+0

다시 한번 감사드립니다 :) @Elias –

관련 문제