2014-01-30 4 views
0

php에서 python으로 매개 변수를 전달하는 데 문제가 있습니다.php에서 python으로 매개 변수를 전달하는 중 불완전합니다

$ _SERVER [ 'QUERY_STRING']을 (를) 사용하십시오.

http://www.domain.com/path?a_num=123&msg=hello 

내가 그것을

a = sys.argv[1] 
print a 

인쇄 할 a_num = 123 & MSG = 헬로 가변

$a = $_SERVER['QUERY_STRING']; 
system("python python.py ".$a); 

에 파이썬 넣어되고 결과 인 * a_num = 123 *

무엇이 문제입니까?

+1

'&'는 문자열의 나머지 부분을 없애고 있지만, php로 어떻게 수정했는지 충분히 알지 못합니다. – jayelm

+1

@ jmu303 예. 나도 그렇게 생각해. – Vincent

답변

1

이 문제는 PHP에서 발생하지 않는다고 생각합니다. 시스템 명령이 어떻게 실행되고 있는지 더 자세히 설명합니다. 리눅스 명령에 '&'문자를 사용하는 가정 :

python python.py a_num=123&msg=hello 

이 제어 연산자로 해석되고있다. (이 예 tcsh의 다른 셸과 동일하게 적용하더라도) 배시 문서에서 : 명령이 제어 연산자 & 종료되면

, 쉘 서브 쉘 백그라운드에서 명령을 실행한다.

python python.py "a_num=123&msg=hello" 

하는 PHP에서 어떤 보일 것이다 : 쉘은 마무리에 명령 기다리지 않으며, 반환 상태가이 문제를 방지하려면 0

, 당신은 전달되는 문자열을 인용 할 필요가 like :

+1

당신은 최고입니다! – Vincent

+0

기꺼이 도와 드리겠습니다. –

관련 문제