\ http_parse_headers()有反向功能吗?

时间:2017-04-11 07:54:57

标签: php http

PHP函数\http_parse_headers()将HTTP标头解析为关联数组。

但是有一些反向功能吗?哪个将关联数组解析为HTTP头?

找不到任何东西:(

(用于将电子邮件保存到文本.eml文件中)

1 个答案:

答案 0 :(得分:1)

没有一个函数可以将关联数组转换为标题的文本表示形式。原因是:这个功能非常简单。

标题定义为key: value分隔符为\r\n。 标题和正文之间还有另一个\r\n分隔符。

让我们举一个示例数组:

$headers = [
    'Content-Length': 50,
    'Content-Encoding': 'gzip'
];

目标:提供表示HTTP标头的字符串

function parse_array_to_headers(array $headers)
{
    $result = [];
    $delimiter = "\r\n";

    foreach($headers as $name => $value)
    {
        $result[] = sprintf("%s: %s", $name, $value);
    }

    return implode($delimiter, $result);
}

注意:此函数不会检查数组的有效性,并且不会在结尾处重复两次重复\r\n字符串。此示例用于显示添加缺失函数应该是多么容易。根据您的需求进行调整。另外,我没有测试过这个,所以不要复制粘贴它! :)