반응형
exec는 리눅스와 같이 웹서버에서 다른 특정한 파일을 실행할때 사용한다.
<?php echo exec("php /var/www/unity/src/emailer.php?id=123");
?>
예를 들어 php를 위와같이 실행했다고 하자. 즉 GET 방식으로 id 라는 변수로 123 이라는 값을 전달하여 결과를 원했을 것이다. 그러나 exec 라는 명령어는 프로그램을 호출하는 명령어 이기 때문에 GET 이나 POST 전달방식이 아니다. 즉 일반 실행되는 프로그램처럼 $argv 라는 매개변수를 통해서 값을 전달 받게 된다.
따라서 exec 명령어로 호출되어 실행되는 파일에서 다음과 같은 php 를 넣어 실행해보자.
<?php print_r($argv);?>
그러면 위의 실행결과를 보고 반환 값을 잘 조절할 수 있을 것이다.
다만 exec 를 할때 그 주소 값?도 약간 달라져야한다.
<?php echo exec("php /var/www/unity/src/emailer.php id 123"); ?>
이와같이 실행을 해주어야 한다. 즉 일반 프로그램 실행될때와 같이 실행파일명 뒤에 매개변수가 붙도록 지정해주어야 한다. 그래야만 값이 전달이 되기 때문이다.
참고 원문 : http://stackoverflow.com/questions/6273791/calling-exec-on-a-php-file-and-passing-parameters
반응형