2013-06-20 1 views
0

system()을 사용하여 PHP로 파이썬 스크립트를 실행하고 있습니다. 내 Python 스크립트의 결과를 얻으려면 print 명령을 사용하고 PHP에서 결과를 catch하십시오.PHP에서 파이썬 스크립트 출력을 캐치하여 이중 출력을 피하십시오.

파이썬 (test.py)

import sys 
name = sys.argv[1] 
print 'Your name is ' + name 

PHP

$result = system('python test.py John'); 
echo $result; 

/* PHP Output */ 
Your name is John 
Your name is John 

당신이 볼 수 있듯이, 출력은 두 배가됩니다 : 여기에 내 코드입니다. 첫 번째 것은 Python 스크립트 자체에 의해 생성 된 것이고 두 번째 것은 echo 명령 때문이었습니다. 이 두 배 출력을 피하는 방법이 있습니까? 난 그 결과를 잡아 내 PHP 스크립트의 어딘가에서 사용할 것이다.

** 참고 : Python 스크립트 출력을 PHP에 전달하는 방법에 대한 또 다른 방법이 있는지 궁금합니다. 내 유일한 의도는 출력을 PHP 변수에 저장하는 것입니다.

+0

http : //stackoverflow.com/questions/7765473/error-on-using-exec-to-call-python-script – RST

답변

0

exec 기능을 사용해보세요. 또한 명령 실행을 수행하지만, 시스템에서는 내용을 표준 출력으로 출력하지 않습니다. 유일한 단점은 반환이 stadard 출력의 모든 행의 배열입니다 (시스템과 같음) proc_open으로 시도해 볼 수 있으며 출력을 임의의 파이프로 리디렉션 할 수 있습니다.

관련 문제