2009-10-27 6 views
2

상대 경로를 사용하여 exec 명령으로 PHP에서 외부 프로그램을 실행하는 방법은 무엇입니까?PHP exec 명령 - 상대 경로가 작동하지 않습니다.

<?php 

    exec('program_name ......'); 

?> 

program_name.exe가이 PHP 스크립트와 동일한 디렉토리에있는 경우에만 작동합니다. 예 :

exec('something/program_name ......'); 

PHP 스크립트가 'something'디렉토리에 없다면 작동하지 않습니다. 누구든지 exec 명령에서 상대 경로를 사용하는 방법을 알고 있습니까? 덕분에

답변

3

상대 경로는 악의입니다.

exec(dirname(__FILE__) . 'program_name ......'); 
+0

"program_name"이 스크립트와 동일한 디렉토리에 있지만 op의 경우와 마찬가지로 "php 스크립트가 'something'디렉토리에 있지 않은 경우 작동하지 않습니다. – GZipp

+0

@GZipp, 저자는 충분한 정보를 얻지 못했습니다. 그의 상대 경로는 무엇입니까? PHP 스크립트 또는 지정되지 않은 다른 포함 경로가 있습니까? 나는 일반적인 질문에 대한 일반적인 대답을했다. –

+0

그러나 귀하의 답변은 일반적인 것보다 구체적입니다. 현재 파일 경로 내의 경로에는 적용되지만 외부 경로에는 적용되지 않습니다. 어쨌든, 나는 단지 당신의 대답이 효과가있는 경우와 그렇지 않은 경우를 지적했다. – GZipp

4

질문에 대답하려면 "어떻게하면 [exec] 명령에서 상대 경로를 사용합니까?"라는 질문에 대답하십시오.

$rel = 'something/program_name'; 
$abs = realpath($rel); 
exec($abs); 
관련 문제