2011-05-09 5 views
1

CGI를 통해 직접 프로그램을 실행하거나 PHP exec/system을 대신 사용할 수 있습니다. 그 차이점은 무엇입니까? 또한 어느 것이 더 안전하다고 말할 수 있습니까?직접 CGI 호출 또는 PHP exec/system?

+0

"직접 CGI"라고 말하면 exec() 호출이 필요합니다. Hencwhy는 차이가별로 없을 것입니다. 보안 성이 좋지 않을 수도 있습니다. (하지만 당신이 충분한 컨텍스트를주지 않았기 때문에 알기가 어렵습니다.) – mario

+0

감사합니다. Mario, 나는 userName 변수를 취한 다음 다른 웹 사이트에서 데이터를 추출하여 MySQL DB에 넣는 CGI 스크립트를 가지고 있습니다. 이제이 스크립트를 호출하는 가장 좋은 방법은 무엇인지 생각하고있었습니다. 성능상의 현저한 차이가 있습니까? –

답변

0

CGI를 통한 스크립트 실행은 직접 실행과 크게 다르지 않습니다. 그냥 PHP-CGI 바이너리를 사용하고 수행합니다 CGI 환경 변수의 대부분

exec("SCRIPT_FILENAME=cgi.php QUERY_STRING=userName=user123 php-cgi"); 
// use escapeshellarg() for variable parameters! 

현재 PHP 환경에서 이미, 당신은 단지 몇 가지를 오버라이드 (override) 할 필요가 그래서. QUERY_STRING은 예를 들어 $_GET[] 개의 변수에 해당합니다.

실적상 약간의 차이가 있습니다. 그러나 웹 서버를 통해 다른 하위 요청 file_get_contents("http://localhost/cgi.php?user=123")을 호출하는 것보다 빠른 경우가 많습니다.

+0

다시 도움을 청합니다. –

관련 문제