2010-02-09 1 views
18

내가 PHP는 간부 명령을 테스트하고 있습니다 :PHP return_var 코드?

http://php.net/exec

을 내가 다시 127

내 PHP 코드의 결과 코드를 받고 있어요 것은 :

<? 

print "<br>executing 'hello':<br><b>"; 
exec ("hello", $output, $result); 
var_dump($output); 
print "<br>$result"; 
print "<br></b>end hello."; 


print "<br><hr><br>"; 


print "<br>executing 'dir':<br><b>"; 
exec("dir", $output2, $result2); 
var_dump($output2); 
print "<br>$result2"; 
print "<br></b>end dir."; 

?> 

그리고 출력은 다음과 같습니다 :

executing 'hello': 
array(0) { } 
127 
end hello. 


executing 'dir': 
array(2) { [0]=> string(42) "bs1.jpg hello index.htm ml1_1.jpg pp1.jpg" } 
0 
end dir. 

PHP (지금까지의 내가 찾을 수로) 문서가이 말씀하시기 return_var 인수 출력 인수와 함께 존재하는 경우

return_var

, 다음 의 반환 상태는 실행 된 명령은 기록됩니다 이 변수에.

... 그러나 출력 가능성 목록 또는이를 찾는 방법이 없습니다.

제안 사항?

답변

18

리턴 코드가 조금 임의 수 있습니다, 윈도우에 있습니다. 기본적으로 0이 아닌 반환 값은 오류입니다. Here's a list 몇 가지 공통점이 있지만 일반적으로 특정 프로그램을 사용하지 않는 한 여러 프로그램을 특정 오류 코드에 매핑하는 것과 달리 0이 아닌 오류를 발견하는 것이 더 쉽습니다.

9

리턴 코드 127 의미 지정된 절차를 찾을 수 없습니다. 당신을 가정

Windows System Error Codes

+0

그 _command을 찾을 수 없습니까 _ _ _ _ _ _ _ _ _ _ _하지 않습니다 _? –

+1

저는 리눅스를 사용하지만, 많은 도움이되었습니다! http://www.faqs.org/docs/abs/HTML/exitcodes.html –

1

exec()은 외부 파일에서 작동하고 운영 체제에서 반환 코드를받습니다. 127이 운영 체제에서 나오는 경우 정의 된 경로에서 파일을 찾을 수 없다는 의미입니다.

반면에 127이 실행중인 응용 프로그램에서 나오는 경우 해당 응용 프로그램의 설명서에서 해당 내용의 의미를 확인해야합니다.

3

반환 값은 완전히 임의입니다. 프로그램을 작성할 때 원하는 모든 값을 반환 할 수 있습니다. PHP에서는 exit 언어 구조와 함께 할 수 있습니다

<?php 
exit(33); 

당신은 그것의 문서에 소프트웨어의 특정 부분에 대한 정확한 상태 코드를 찾을 수는 (저자가 실제로 그것을 문서화 주어진). 그러나 0은 "OK"를 의미하고 다른 것은 "문제가 있음"을 의미하는 일반적인 동의입니다. 따라서 0에 대한 점검은 일반적으로 충분합니다.

존재하지 않는 프로그램을 실행하려고하는 것처럼 보입니다. PHP는 시스템 쉘을 통해 외부 프로그램을 실행하므로 값은 bash 또는 기본 쉘에서 가져올 수 있습니다.유닉스에는 어떤 것이 있고 exit codes with special meanings명령을 찾을 수 없다는 것을 의미한다..