根据 HTTP 规范,标头可能如下所示:
Header-Name=value1,value2,value3,...
Run Code Online (Sandbox Code Playgroud)
我尝试解析标头值并将它们存储为数组:
array('value1', 'value2', 'value3')
Run Code Online (Sandbox Code Playgroud)
到目前为止,一切都很好。如果出现逗号,我可以只标记字符串。
但是我应该如何处理这样的标题:
Expires=Thu, 01 Dec 1994 16:00:00 GMT
Run Code Online (Sandbox Code Playgroud)
有一个逗号,但在标题具有的一个值中。哦,这很容易,我想并找出了规则:只有在逗号前后没有空格时才用逗号分隔。这样,两个示例都可以正确解析。
但是后来我遇到了这样的标题:
Accept-Encding=gzip, deflate
Run Code Online (Sandbox Code Playgroud)
现在?这是一个值array('gzip, deflate')还是两个值array('gzip', 'deflate')?对我来说,它们是两个独立的值,但我上面的规则不再适用。
是否有一个列表允许多次使用标题?所以我可以检查黑名单以确定逗号是否表示值分隔符?
任何标头字段都可能发生逗号连接,即使是那些不是为它设计的;这就是图书馆和中介机构的运作方式。
它旨在用于使用列表语法的标头字段(RFC 7230 包含所有详细信息)。
最后,您不能使用通用代码来标记化,因为逗号在值中出现的方式因字段而异。
| 归档时间: |
|
| 查看次数: |
2522 次 |
| 最近记录: |