如何通过php发送apache头像这样的方法?

时间:2016-09-13 07:23:55

标签: php apache header

我有一个应用程序生成几个apache原始文件,如下所示如何使用所有这些作为请求到PHP?我知道我们可以像header("Location: http://www.example.com/");一样单独调用它们,但我们如何从这样的一个命令中调用所有这些呢? (仅举例)

<?php
        header("http://example.com/test.php

            POST test.php HTTP/1.1
            Host: example.com
            User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:48.0) Gecko/20100101 Firefox/48.0
            Accept: application/json, text/javascript, */*; q=0.01
            Accept-Language: en-US,en;q=0.5
            Accept-Encoding: gzip, deflate, br
            Content-Type: application/x-www-form-urlencoded; charset=UTF-8
            X-Requested-With: XMLHttpRequest
            Referer: http://example.com/test/
            Content-Length: 87
            Cookie: __cfduid=somevalue; 
            Connection: keep-alive
            a=1&b=2");
?>

我想将它完全发送到我的服务器是否可能?

3 个答案:

答案 0 :(得分:1)

你可以从文本中提取它并且毕竟使用header()方法......排序如下:

<?php
$txt = "http://example.com/test.php
POST test.php HTTP/1.1
Host: example.com
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:48.0) Gecko/20100101 Firefox/48.0
Accept: application/json, text/javascript, */*; q=0.01
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With: XMLHttpRequest
Referer: http://example.com/test/
Content-Length: 87
Cookie: __cfduid=somevalue;
Connection: keep-alive
a=1&b=2";

array_map("header", explode("\n", $txt));

基本上,每个新行都在数组中创建一个条目。 array_map()遍历数组,对于数组中的每个项,调用header()函数,并将数组中的项作为唯一参数。

答案 1 :(得分:1)

PHP标头函数设置响应标头,其中apache返回给客户端。问题中的标题是客户端向apache发送的请求标头。

来自HTTP/1.1 specification

  

6.2响应标题字段

     

response-header字段允许服务器传递额外的内容      关于无法在状态中放置的响应的信息 -      线。这些标题字段提供有关服务器和有关的信息      进一步访问Request-URI标识的资源。

   response-header = Accept-Ranges           ; Section 14.5
                   | Age                     ; Section 14.6
                   | ETag                    ; Section 14.19
                   | Location                ; Section 14.30
                   | Proxy-Authenticate      ; Section 14.33
                   | Retry-After             ; Section 14.37
                   | Server                  ; Section 14.38
                   | Vary                    ; Section 14.44
                   | WWW-Authenticate        ; Section 14.47
     

响应标头字段名称只能在中可靠地扩展      与协议版本的变化相结合。但是,新的或      实验头字段可以给出响应的语义 -      如果通信中的所有各方都认识到它们,则为头字段      是响应标头字段。无法识别的标题字段被视为      entity-header字段。

其他RFC extend this list,但您无法设置引荐来源,或者让浏览器通过标头提交另一个POST请求。

答案 2 :(得分:-1)

您可以使用可选的&#34;替换&#34;逐个发送多个标题。参数并将其设置为false。所以,例如,您可以发送

header("http://example.com/test.php");
header("POST test.php HTTP/1.1",false);

等等。这将附加到原始标题。

来源:http://php.net/manual/en/function.header.php