我正在尝试创build一个服务于PHP脚本的Web服务器。 目前,它的工作原理如下:
php index.php
php
的输出并将其返回给客户端 所有这些工作除了参数不被传递给PHP脚本,因为:
var_dump($_GET);
收益:
数组(0){}
$_GET
参数在调用时如何传递给PHP二进制文件?
你使用哪个PHP二进制文件? CLI还是CGI? 我怀疑你需要PHP的二进制CGI版本来正确处理接受环境variables和POST数据,如果你通过。
php-cgi
二进制文件实现了CGI接口,它允许你在命令行上传递参数:
php-cgi -f index.php left=1058 right=1067 class=A language=English
最后在$_GET
:
Array ( [left] => 1058 [right] => 1067 [class] => A [language] => English )
您可能需要了解CGI如何工作,以便您可以在Web服务器中实现它。
Ref: RFC3875
根据维基百科 ,答案是设置QUERY_STRING
环境variables:
QUERY_STRING='user=foo&pass=bar&left=1234' php-cgi index.php
或分开的步骤:
export QUERY_STRING='user=foo&pass=bar&left=1234' php-cgi index.php
如果你使用php-cgi
命令,这是有效的,因为这是CGI规范的一部分。 普通的php
命令忽略这个variables,但你的脚本可能会使用它。
如果你通过php script.php test = asdf
$result = parse_args($argv,$argc,$help); print_r($result);
如果你将它传递给STDIN,你需要阅读STDIN并自己parsing头文件。 REQUEST_URI将包含您需要的数据,您可以通过该数据。