2010-04-28 4 views
8

PHP에서 파이썬 스크립트를 호출합니다.PHP에서 파이썬 호출 및 리턴 코드 받기

파이썬 프로그램은 전달 된 인수에 따라 값을 반환해야합니다.

#!/usr/bin/python 
import sys 

#get the arguments passed 
argList = sys.argv 

#Not enough arguments. Exit with a value of 1. 
if len(argList) < 3: 
    #Return with a value of 1. 
    sys.exit(1) 

arg1 = argList[1] 
arg2 = argList[2] 

#Check arguments. Exit with the appropriate value. 
if len(arg1) > 255: 
    #Exit with a value of 4. 
    sys.exit(4) 
if len(arg2) < 2: 
    #Exit with a value of 8. 
    sys.exit(8) 

#Do further coding using the arguments------ 

#If program works successfully, exit with a value of 0 

위의 코드에서 볼 수 있듯이, 내 기본 목표는

    입니다 : 여기

    당신에게 내가 현재 뭘 오전의 기본 아이디어를 줄 것이다 샘플 파이썬 프로그램입니다
  1. 파이썬 프로그램이 인수에 따라 일부 값 (0,1,4,8 등)을 반환합니다.
  2. 그리고 호출 한 PHP 프로그램이 반환 된 값에 액세스하고 적절한 작업을 수행합니다.

현재 "sys.exit (n)"을 사용하고 있습니다.

sys.exit을 사용하는 것이 맞습니까? 아니면 다른 것을 사용해야합니까?

또한 파이썬에서 반환 코드에 액세스 할 수 있도록 PHP에 어떤 메소드가 있습니까? 긴 질문에 대한 죄송합니다

, 그러나 희망은 당신이 PHP에서 내 딜레마를

감사 톤

답변

7

을 이해하는 데 도움이 될 것입니다, 당신은 명령을 실행하고 exec를 사용하여 리턴 코드를 얻을 수 있습니다.

execmanual 세번째 파라미터는, 예를 들면, 반환 코드가 저장 될 것이다 가변 말한다

exec('python blibble.py', $output, $ret_code); 

$ret_code 쉘 리턴 코드 및 $output는의 행의 배열 인 것 std에 인쇄 된 텍스트. 산출.

설명 된 결과의 반환 코드, 즉 0은 성공을 나타내고 0은 다양한 유형의 오류 코드입니다.

+0

PHP 함수 (exec)가 반환 값을 가져 주셔서 감사합니다. 그러나 sys.exit (n)에 대한 확인도 필요합니다. 값 (n)이 "$ ret_code"로 반환됩니까? 또는 파이썬 프로그램을 반환하고 종료하는 또 다른 방법을 사용해야합니까? 다시 한 번 감사합니다. – seaboy

+0

그냥 sys.exit (n)가 쉘에 값을 반환한다는 것을 확인했습니다. 리눅스에서는 "echo $?"로 출력 할 수 있습니다. Windows에서 : "echo % ERRORLEVEL %". "$ ret_code"에서 그 값을 확인할 수는 없지만 내 문제의 파이썬 부분을 해결했습니다. 다시 한 번 감사드립니다 – seaboy

+0

예, sys.exit 값은 PHP exec 명령에 의해 리턴 코드 매개 변수에 저장되어야합니다. 파이썬 호출에 대해서는 잘 모르겠지만 자바와이 메소드를 통해 호출하는 다른 명령을 사용하여 파이썬을 호출합니다. – JAL