Прямой CGI-вызов или PHP exec / system? - PullRequest
1 голос
/ 09 мая 2011

У меня есть возможность выполнить программу напрямую через CGI или использовать вместо нее PHP exec / system.В чем разница?Также можете ли вы сказать, какой из них более безопасен?

1 Ответ

0 голосов
/ 09 мая 2011

Выполнение скрипта через CGI мало чем отличается от его непосредственного выполнения. Просто используйте бинарный файл PHP-CGI и выполните:

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

Большинство переменных среды CGI уже находятся в текущей среде PHP, поэтому вам нужно переопределить только несколько. QUERY_STRING соответствует, например, $_GET[] переменным.

По производительности мало разницы. Часто это быстрее, чем если бы вы вызывали другой подзапрос file_get_contents("http://localhost/cgi.php?user=123") через веб-сервер.

...