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

Joh*_*ski 3 php apache scripting cgi include

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

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

Rya*_*ham 5

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

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

http://localhost/cgi-bin/foo?param1=val1&param2=val2
Run Code Online (Sandbox Code Playgroud)

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

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

foo val1 val2
foo param1=val1 param2=val2
Run Code Online (Sandbox Code Playgroud)

如何传递参数将取决于您稍后希望如何在其他程序/脚本中解析它们。它们将显示在被调用的程序中,就像从命令行调用它一样。