php解释器和超级全局

首先,我是一名法国学生,请原谅我英语不好 水平。 我们目前正在开发一个Web服务器(C ++),我必须开发CGI执行 部分,更确切地说:PHP CGI部分。 当用户在我们的服务器上询问.php页面时,我们fork / pipe并调用/ usr / bin / php 翻译。例如 : $ / usr / bin / php index.php 现在,我们可以将结果保存在缓冲区(生成的index.php的html代码)中,我可以发送 这个内容给了客户。它适用于没有任何变量的简单脚本。 然而,很多PHP脚本使用一些超级全局,如$ _GET和$ _POST。 我的问题是:我怎样才能给php解释器这个参数? 示例:如何设置此$ _POST变量以保存“Hello world” 我们的缓冲?
<?php

echo $_POST['text'];

?>
感谢您将来的回复。 亲切     
已邀请:
CGI程序期望POST数据为
stdin
。和
QUERY_STRING
环境变量中的GET数据。     
您必须设置一些环境变量:
REQUEST_METHOD=POST
告诉PHP它需要处理POST请求
CONTENT_LENGTH=1234
告诉PHP它将接收多少字节作为原始POST数据(在本例中为1234字节)
HTTP_CONTENT_LENGTH
CONTENT_LENGTH
基本相同。更好地设置它,以便它可以更好地使用各种PHP版本/配置。
CONTENT_TYPE=application/x-www-form-urlencoded
是HTTP Content-Type标头 您可以从HTTP标头获取这些变量的正确值。 您还需要一个到PHP进程的双向管道,以将原始POST数据发送到它的STDIN。我假设您已经从PHP接收脚本输出。 只要您处理正常的浏览器请求,您就不需要知道任何更多细节。否则,如果POST数据直接来自您的服务器,请使用上面的CONTENT_TYPE并对变量进行url编码:
REQUEST_METHOD=POST
CONTENT_LENGTH=16
HTTP_CONTENT_LENGTH=16
CONTENT_TYPE=application/x-www-form-urlencoded
STDIN数据:
test=Hello+world
对于GET请求,您可以更改
REQUEST_METHOD=GET
并保留其他变量。在任何一种情况下,您都可以通过
QUERY_STRING
环境变量传递查询字符串。     

要回复问题请先登录注册