有没有一种从PHP脚本调用CGI脚本的好方法?

时间:2009-02-06 16:57:35

标签: php apache scripting include cgi

我看到PHP中有一个 virtual()函数会调用CGI脚本,但这是最好的方法吗?我也可以将任何参数传递给该脚本吗?

我看到了一些使用 file_get_contents() include()并传入CGI脚本的网址的示例,但这感觉就像是黑客攻击。

2 个答案:

答案 0 :(得分:4)

如果您可以在本地调用,请使用 exec()。如果它需要作为CGI调用(如在脚本中设计为仅在CGI环境中工作),那么您需要通过 include() file_get_contents调用它( )即可。 virtual()将刷新缓冲区并附加子请求的输出。

您可以通过 include() file_get_contents() virtual()作为GET参数传递参数:

http://localhost/cgi-bin/foo?param1=val1&param2=val2

如果可能,请转到 exec()路线。使用其他方法可能需要更改配置。

使用exec()时,您需要像对任何CLI程序一样传递参数。

foo val1 val2
foo param1=val1 param2=val2

如何传递参数将取决于您希望稍后在其他程序/脚本中解析它们的方式。如果你从命令行调用它们,它们就会出现在被调用的程序中。

答案 1 :(得分:0)

我也无法从我的php页面调用CGI脚本。后来我意识到问题是我的页面文件有.html后缀,而不是.php后缀。修复允许我的脚本为我工作。这可能不是你的问题,但我想我会提到它以防万一。