如何将GET和POST数据传递给php可执行文件?

时间:2009-06-03 03:50:42

标签: php post get webserver

我正在用C#编写Web服务器,我正在尝试添加对PHP的支持。我主要使用它,除了我不知道如何在将文件传递给它时将GET和POST数据传递给PHP可执行文件。我一直在使用GET进行测试,因为我还没有得到在服务器上处理的POST请求,并且我将传递的参数字符串分开,但我不知道如何将信息提供给php解析器。一些提示将不胜感激。

5 个答案:

答案 0 :(得分:5)

对于GET: 简单的方法(我发现):

php-cgi.exe <script-file-name> <parameter1>=<value1> <parameter2>=<value2> [...] <parameterN>=<valueN>

更难的方式(通过php-cgi和windows cli)将是:

SET "QUERY_STRING=<parameter1>=<value1>&<parameter2>=<value2>&[...]&<paramterN>=<valueN>"
SET SCRIPT_NAME=<script-file-name>
SET REQUEST_METHOD=GET
SET REDIRECT_STATUS=0
php-cgi.exe

我假设有一种方法可以通过C#/ .Net设置环境变量。在php-cgi.exe完成后,必须取消设置环境变量。

您可以在http://www.ietf.org/rfc/rfc3875.txt设置的CGI环境变量(以及一般的CGI)的更多信息。也可能是PHP的$ _SERVER变量文档。在PHP.net的PHP文档中运行PHP作为CGI的安全注意事项。

答案 1 :(得分:1)

您熟悉CGI吗?这通常是Web服务器如何执行任意外部程序。

CGI当然有更多现代替代品,但(几乎)今天每个网络服务器和外部程序都将支持CGI。

答案 2 :(得分:1)

如果您在bash或类似的shell中,请尝试以下操作:QUERY_STRING="fruitKind=apple&basketId=1000" php -q foo.php

答案 3 :(得分:0)

答案 4 :(得分:-1)

您是否考虑将GET / POST数据作为STDIN传递给PHP可执行文件?即。

system(“echo”.GETOrPOSTData。“&gt; foobar.php”);