2011-05-09 60 views
1

我可以选择直接通过CGI执行程序,也可以使用PHP exec/system。有什么不同?你也可以说哪一个更安全?直接CGI调用或PHP exec/system?

+0

如果你说“直接通过CGI”,那么这就需要一个exec()调用。 Hencwhy不会有太大的区别,也可能不是安全方面的。 (但很难说,因为你没有提供足够的上下文。) – mario 2011-05-09 13:57:23

+0

感谢马里奥,我有一个CGI脚本,它需要一个userName变量,然后开始从另一个网站提取数据,将其放入MySQL数据库。现在我正在考虑调用这个脚本的最佳方式是什么。性能方面有明显的区别吗? – 2011-05-09 14:04:04

回答

0

通过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")要快。

+0

再次为您的帮助而欢呼。 – 2011-05-09 15:52:10