getallheaders 是不是已经可以完全替代 $_SERVER['HTTP_XXX'] 了?

2016-10-05 21:05:07 +08:00
 tabris17
看了下文档, 5.4.0 的时候已经支持 FastCGI 了, 5.5.7 的时候已经支持 cli server 了。

不过,这个函数会不会有什么坑存在?
3005 次点击
所在节点    PHP
7 条回复
tabris17
2016-10-05 21:12:32 +08:00
CGI 模式文档没提。找到一篇文章说是 CGI 模式下不支持,哎~
a570295535
2016-10-05 21:14:40 +08:00
不知道,像我这种小白,还在用着$_SERVER['HTTP_XXX']
mingyun
2016-10-07 09:55:17 +08:00
5.4 命令行下提示 undefined function getallheaders()
techmoe
2016-10-07 11:37:50 +08:00
各有所需
这个 function 输出的是请求的所有的 header ,设想一下假使说我现在要写一个判断某个标准 header 的值是否等于某个值的时候,是直接用`$_SERVER['HTTP_XXX']`好还是先手动拉取一下全部的 header 到一个 array 再取值好?
当然那个函数也有它的用处,上面我强调了是获取标准已经有了通用定义的 header (比如 Accept, Host ),如果碰到客户端需要通过 header 发送某些自定义 header 时就需要拿`getallheaders`取了,最典型的例子是我曾经抓过某个手游的请求,那个手游就是像我说的这样通过几个特定 header 向后端通知当前客户端版本号和手机信息的
mokeyjay
2016-10-07 17:19:55 +08:00
何必浪费性能多跑一个函数呢…更何况这函数还有兼容性要求
tabris17
2016-10-07 18:04:02 +08:00
@mingyun cli 下这个函数不可用
abc123ccc
2016-11-07 18:51:03 +08:00
getallheaders 在 apache 下可用,在 nginx 没有试成功

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/310728

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX