如何通过命令行将 $_GET 变量传递给 PHP 脚本?

Nat*_*man 15 php http cgi

我正在尝试创建一个为 PHP 脚本提供服务的网络服务器。目前,它的工作原理如下:

  1. 客户端请求 /index.php?test=value
  2. 服务器调用 php index.php
  3. 服务器将 HTTP 请求标头作为 STDIN 提供给 PHP 进程
  4. 服务器php从 STDOUT读取输出并将其返回给客户端

除了参数没有传递给 PHP 脚本之外,所有这些都有效,因为:

var_dump($_GET);
Run Code Online (Sandbox Code Playgroud)

返回:

数组(0){}

$_GET调用时如何将参数传递给 PHP 二进制文件?

Zor*_*che 30

您使用的是哪个 PHP 二进制文件?CLI 还是 CGI?我怀疑你需要一个CGI 版本的 PHP 二进制文件来正确处理接受环境变量和 POST 数据(如果你通过了它)。

php-cgi二进制实现CGI接口,它允许通过在命令行上的参数:

php-cgi -f index.php left=1058 right=1067 class=A language=English
Run Code Online (Sandbox Code Playgroud)

最终结果是$_GET

Array
(
    [left] => 1058
    [right] => 1067
    [class] => A
    [language] => English
)
Run Code Online (Sandbox Code Playgroud)

您可能想了解CGI 的工作原理,以便在您的 Web 服务器中实现它。

参考:RFC3875