如何向编译器发送http请求

时间:2016-04-23 21:50:02

标签: c# php http

我正在使用Csharp开发一个Web服务器,我想在其上安装php编译器。

当前状态:Web服务器正在工作并接收连接,可以编译PHP页面,我正在使用procces start调用PHP编译器,我可以像这样arg发送GET参数:

php.exe name=1 /index.php 

问题是如何以更好的方式向编译器发送post,get data和HTTP header?

1 个答案:

答案 0 :(得分:0)

在命令行界面上传递HTTP标头确实有一个相当神圣的解决方案:-B--process-begin 标志允许在相关脚本之前运行代码。这可用于将数据注入$_SERVER超全局数组以模拟正在设置的标头。例如。要设置X-Foo: bar,您可以运行:

php.exe --process-begin '$_SERVER["HTTP_X_FOO"] = bar;' /index.php

$_GET$_POST超全球可以做同样的事情。然而,这真的只是一个黑客,出于安全原因,我不能在学术环境之外推荐这个。

更好的方法是利用builtin webserver。如果你的编码足够干净,那么将传入的请求重新路由到PHP并将结果反馈回来应该没有问题。但是,如果您不需要任何虚拟主机,这将只能完美地工作。和上面的解决方案一样,这在研究之外没有其他地方!

绝对正确的方法是实施Common Gateway Interface。 PHP本身带有一个CGI接口,因此对它说CGI是trivial。如果遇到可伸缩性问题,可能需要切换到FastCGI。可以找到示例实现here

最后一件事:PHP是一种解释语言,而不是已编译的语言。