Development/PHP
[PHP] 쉘 함수 exec()와 파라미터 전달
곽진돔
2022. 11. 17. 16:24
php에서 python을 실행하려면 exec function 을 사용한다.
exec(실행파일 .파라미터);
나는 파이썬 파일을 실행하기 위해 "설치된경로 실행할 파일명" 파라미터를 작성했다.
예시)
exec("C:/Users/user/AppData/Local/Programs/Python/Python37/python.exe C:/APM_Setup/htdocs/test.py ".$value);
여기서 전달하는 파라미터 값에 &가 있으면 잘려서 전달이 된다.
escapeshellarg() 함수를 사용하면 해결할 수 있다.
escapeshellarg() 는 문자열 주위에 작은 따옴표를 추가하고 기존 따옴표를 이스케이프하여 문자열을 쉘 함수에 직접 전달하고 하나의 안전한 인수로 처리하도록 하는 함수이다. 이 함수는 쉘 함수에 대한 인수를 이스케이프 하는데 사용해야 한다. (쉘 함수 : exec(), ststem(),백틱 연산자)
아래처럼 파라미터 값에 함수를 씌우면 된다.
exec("C:/Users/user/AppData/Local/Programs/Python/Python37/python.exe C:/APM_Setup/htdocs/test.py ".escapeshellarg($text));