我正在用PHP创建一个框架,我需要通过浏览器完成完整的原始请求。所以我想在变量中使用这样的东西:
POST /lolzorz/xD HTTP/1.1\r\n
Host: localhost\r\n
User-Agent: UserAgentHere/1.0.00\r\n
Content-Type: application/xml; charset=utf-8\r\n
Content-Length: 0\r\n
\r\n
<?xml version="1.0" encoding="UTF-8"?>\r\n
<request>\r\n
<question1 param="value" />\r\n
<question2 param="value" />\r\n
<question3 param="value" />\r\n
</request>\r\n
这可能吗?
我的服务器信息:
谢谢,
答案 0 :(得分:2)
我不认为php可以抓住原始输入流的标题部分。 (getallheaders()/ apache _request_headers()已被提及) 但至少你可以通过php://input stream阅读原始帖子数据。
答案 1 :(得分:0)
如果您指的是其他网页的服务器标头,请使用get_headers()
功能。
如果您指的是页面用户请求的标头,则可以使用apache_request_headers()
功能。虽然正如kon所说,首选方法是这样做:
<?php $postdata = file_get_contents("php://input"); ?>
您需要确保在php.ini中有always_populate_raw_post_data
选项。
答案 2 :(得分:0)
我想你必须使用$ _SERVER变量和
的内容手动将它们放在一起print_r(getallheaders());
答案 3 :(得分:0)