Yek*_*ver 2 php http http-headers
我使用php函数file_get_contents,其中一个params是http标头.我把它们做成这样的:
if (strpos($key, 'HTTP_') === 0) {
$key = strtolower(strtr(substr($key, 5), '_', '-'));
$this->headers .= $key . ': ' . $value . '\r\n';
}
Run Code Online (Sandbox Code Playgroud)
但这是一个问题,我应该用双引号发送标题,如下所示:
"Connection: close\r\nContent-Length: $data_len\r\n"
Run Code Online (Sandbox Code Playgroud)
以下是如何提出请求的示例:
$opts = array(
'http' => array(
'method' => "GET",
'header' => $this->headers
)
);
$this->data = file_get_contents('http://phd.yandex.net/detect', false, stream_context_create($opts));
Run Code Online (Sandbox Code Playgroud)
但它失败了.如果我用$this->headers自定义的http标头字符串替换数组,一切正常.
如何让它正常工作?
该\r\n需求是在双引号,这样的字符是正确分析.其他所有内容都可以使用单引号添加,没问题.只有很少的东西都用单引号字符串,如反斜线解析\\,\'和\".
你的标题看起来像这样:
Key: Value\r\nKey: value\r\n
Run Code Online (Sandbox Code Playgroud)
当\r\n它显示为实际字符串时,如果您希望它看起来像这样:
Key: Value
Key: Value
Run Code Online (Sandbox Code Playgroud)
凡\r\n实际创建的头一个新的生产线.