我正在开发一个简单的python web服务器用于教育目的。我希望我的服务器能够在请求上运行PHP脚本。我可以通过创建一个类似于此answer的子进程来执行php代码,并将其输出作为字节。这可以帮助我执行大多数PHP内置函数。但我还想模拟$ _GET和$ _POST变量,比如,当用户发送POST请求时,我希望它的参数在$ _POST全局变量中可用。
我可能会破解我给子进程的命令,但我听说,在像Apache这样的真实Web服务器中,PHP从环境变量中获取这些变量的值(我认为是通用网关接口标准)。 / p>
但是,当我设置一个名为QUERY_STRING
的环境变量时,php不会设置$ _GET的值。让我展示一下大局:
的index.php
<?php var_dump($_GET); ?>
我在shell中的命令:
export QUERY_STRING="foo=bar"
php index.php
这个剪断的命令并没有给我想要的输出(Array =&gt; [&#39; foo&#39;] =&#39; bar&#39;)。这是我的问题:
我的python版本是3.4.3,我使用的是ubuntu 14.04
答案 0 :(得分:1)
试试这个:
$ php -f index.php foo=bar
在索引php中执行:
parse_str(implode('&', array_slice($argv, 1)), $_GET);
之后你会得到这个结果:
echo $_GET['foo'];// prints 'bar'
在page
的末尾阅读更多示例