【问题标题】:Direct CGI call or PHP exec/system?直接 CGI 调用或 PHP 执行/系统?
【发布时间】:2011-05-09 13:42:12
【问题描述】:

我可以选择直接通过 CGI 执行程序或使用 PHP exec/system 代替。有什么不同?另外你能说哪个更安全吗?

【问题讨论】:

  • 如果您说“直接通过 CGI”,则需要调用 exec()。 Hencw为什么不会有太大的区别,也可能不是安全方面的。 (但这很难说,因为你没有提供足够的上下文。)
  • 谢谢马里奥,我有一个 CGI 脚本,它接受一个用户名变量,然后开始从另一个网站提取数据以将其放入 MySQL 数据库。现在我在想调用这个脚本的最佳方式是什么。在性能方面是否存在显着差异?

标签: php cgi system exec


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2014-10-12
    • 2013-11-14
    • 1970-01-01
    • 2022-07-09
    • 2019-07-20
    • 1970-01-01
    • 1970-01-01
    • 2013-08-23
    • 2010-09-10
    相关资源
    最近更新 更多