사용환경: WINDOW, LINUX, Python 3.10.2, PHP 8.0.3 (이전 버전도 가능)

 

지난 포스팅

 

[ Python ] PHP에서 Python 파일 호출하기

사용환경: WINDOW, LINUX, Python 3.10.2, PHP 8.0.3 (이전 버전도 가능) PHP에서 Python의 파일을 호출하는 방법 PHP에서 shell_exec 를 통하여 Python 파일을 호출할 수 있다. // 사용할 php파일 $output = shel..

code-hoon.tistory.com

 

PHP 에서 Python 에 파라미터를 전달하는 방법을 포스팅하겠습니다.

<?php
$data_value = '첫번째';
$data_value2 = '두번째';
$output = shell_exec("python-text.py".' '.$data_value.' '.$data_value2);
echo $output;

shell_exec 를 사용해주면 되는데, 주의할 점이 있습니다.

바로 띄어쓰기 입니다.

1. 띄어쓰기를 통해 매개변수를 구분한다.
2. 만약 데이터에 '안녕하세요  훈입니다.' 와 같이 띄어쓰기가 있는 데이터는 별도의 데이터로 출력됩니다.

 

# python

import sys
import io	#한글처리

sys.stdout = io.TextIOWrapper(sys.stdout.detach(), encoding='utf-8')		#한글처리
sys.stderr = io.TextIOWrapper(sys.stderr.detach(), encoding='utf-8')		#한글처리

for arg in sys.argv:
    print(arg)

sys.exit()

반복문을 통하여 전달된 인자 arg 를 출력해주면 됩니다. 

arg 의 결과물은 배열(Array)인데, 첫번째 인자출력물로 현재 경로를 출력합니다.  사용에 주의 바랍니다.
만약 값이 전달되지 않았을 때는, 경로만 출력이 되기 때문에 값이 잘 전달되었는지 확인이 가능합니다.

 

결과

 

 

띄어쓰기가 있는 데이터를 전달해주었을때

개행되어서 출력되는 것을 확인하실 수 있습니다.

 

 

반응형

'BackEnd > Python' 카테고리의 다른 글

[ Python ] PHP에서 Python 파일 호출하기  (0) 2022.02.14

사용환경: WINDOW, LINUX, Python 3.10.2, PHP 8.0.3 (이전 버전도 가능)

 

PHP에서 Python의 파일을 호출하는 방법

PHP에서 shell_exec 를 통하여 Python 파일을 호출할 수 있다.

// 사용할 php파일

$output = shell_exec("python-text.py");	   // python-text.py : 파이썬 파일 이름 
echo $output;

최대한 내용을 짧게 하고 싶어서 명령어 없이 작성하였다.

 

다른 방법도 있다,

// 사용할 php 파일

$output = exec( "python python-file-name.py" );
echo $output;

파이썬 파일 이름 앞에 py, python, python3 이라든지 파이썬 명령어를 사용해도 무방하다. 

// python.py

helloThere = 'hello'
print(helloThere)

결과 출력 - hello

 

다음 포스팅은 php에서 매개변수(파라미터)전달하는 방법을 포스팅하겠습니다.

 

 

 

 

PHP: exec - Manual

If you're trying to use exec in a script that uses signal SIGCHLD, (i.e. pcntl_signal(SIGCHLD,'sigHandler');) it will return -1 as the exit code of the command (although output is correct!). To resolve this remove the signal handler and add it again after

www.php.net

 

 

PHP에서 Python 파일 실행하기

php에서 외부 프로그램을 실행시킬 일이 없을 것 같았는데 그 일이 생겼다. 그래서 구글링한 결과 간단하게 사용할 수 있는 것을 발견하고 소스를 추가해봤다. EXEC Function php manual은 다음을 참고

jeffrey-oh.tistory.com

 

반응형

+ Recent posts