본문으로 바로가기

php + python 코드 실행

category [ Web 관련 ]/php 2020. 3. 20. 17:17

play.php 

<?
header('Content-Type: text/html; charset=UTF-8');

//변수에 한글이 포함될 경우 아래 코드를 추가한다.
putenv("LANG=ko_KR.UTF-8");
setlocale(LC_ALL, 'ko_KR.utf8');


$변수1 = "AAA";
$변수2 = "가나다";
$변수3 = "가 나 다"; //공백이 있을경우 문자열로 묶어줘야 함 


//exec("python3 emailsend.py");
exec("python3 play.py ".$변수1." ".$변수2." \"".$변수3."\"", $output);


//print_r($output);
echo $output[0]. "<br>"; //Success1 good
echo $output[1]. "<br>"; //Success2
echo $output[2]. "<br>"; //AAA
echo $output[3]. "<br>"; //가나다
echo $output[4]. "<br>"; //가 나 다
?>

 

play.py

# -*- coding: utf-8 -*-
import sys

def call(변수1, 변수2, 변수3):
    # 무언가를 처리하고..

    # print로 값을 return해서 php에서 받을 수 있음
    print('Success1', 'good')
    print('Success2')
    print(변수1)
    print(변수2)
    print(변수3)



call(sys.argv[1], sys.argv[2], sys.argv[3])


 

exec 함수는 외부프로그램을 실행시켜주는 함수.

리눅스에 php 가 설치된 경우 쉘명령어들을 사용할 수 있음.

윈도우 경우에는 cmd창에서 실행하는 명령어들을 사용할 수 있음

 

//리눅스에서 "naver.com" 로 ping 명령어를 실행한 후 그 결과를 출력.

$output;
return_var;

exec("ping -c 1 naver.com", $output, $return_var);

print_r($output);


//윈도우에서 dir /w 명령어를 실행한 후 그 결과를 출력

$output;
$return_var;

exec("dir /w", $output, $return_var);

print_r($output);