【问题标题】:PHP automatically trims http header?PHP自动修剪http头?
【发布时间】:2019-06-02 21:37:59
【问题描述】:

我在 PHP 中使用header('name: '.$someVariable) 设置标题,其中变量取决于用户输入。

问题是,当我检查返回的标头值时,与我想要的实际结果相比,它们都被修剪了,例如," ABCD " 在返回的标头中变为 "ABCD"。这是正常行为吗?如果是这样,我该如何禁用它?或者有哪些替代方案可以完美保留结果?

我的用例:我在标头中返回用户输入作为对服务器返回响应的验证,因为在短时间内可能会发生许多请求/响应,这将帮助我匹配这些请求和响应

注意:我不能使用echo,因为它是为其他任务保留的。

【问题讨论】:

  • 我不能在这里测试它,但试着改变你写标题的方式,比如header('name: "'.$someVariable.'"') Gufran 的一个更干净 v
  • 请试试这个header("name: $someVariable")
  • 修剪与否不会对您的标题造成问题,因为即使它会在没有空格的情况下读取它

标签: php http-headers


【解决方案1】:

为什么使用用户输入作为 HTTP 标头值?为什么空格在那里很重要?你这样做解决了什么问题?

不管怎样,leading and trailing whitespace in header values is ignored:

header-field   = field-name ":" OWS field-value OWS

其中“OWS”表示“可选空格”。而你can't use quotes around the value to circumvent this

【讨论】:

  • 我在标头中返回用户输入作为对服务器返回响应的验证,因为在短时间内可能会发生许多请求/响应,这将有助于我匹配这些请求和响应。无论如何,这是否意味着我无法将这些空格留在标题中?那个可选的空格是什么意思?这是否意味着我可以在那里放置空格但它们会被忽略?另外,如果我不能这样做,我的用例是否有更好的选择?
猜你喜欢
  • 2010-11-27
  • 1970-01-01
  • 1970-01-01
  • 2013-01-20
  • 2011-02-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-19
  • 1970-01-01
相关资源
最近更新 更多