V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
tabris17
V2EX  ›  PHP

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

  •  
  •   tabris17 · 2016-10-05 21:05:07 +08:00 · 3024 次点击
    这是一个创建于 3006 天前的主题,其中的信息可能已经有所发展或是发生改变。
    看了下文档, 5.4.0 的时候已经支持 FastCGI 了, 5.5.7 的时候已经支持 cli server 了。

    不过,这个函数会不会有什么坑存在?
    7 条回复    2016-11-07 18:51:03 +08:00
    tabris17
        1
    tabris17  
    OP
       2016-10-05 21:12:32 +08:00
    CGI 模式文档没提。找到一篇文章说是 CGI 模式下不支持,哎~
    a570295535
        2
    a570295535  
       2016-10-05 21:14:40 +08:00
    不知道,像我这种小白,还在用着$_SERVER['HTTP_XXX']
    mingyun
        3
    mingyun  
       2016-10-07 09:55:17 +08:00
    5.4 命令行下提示 undefined function getallheaders()
    techmoe
        4
    techmoe  
       2016-10-07 11:37:50 +08:00   ❤️ 1
    各有所需
    这个 function 输出的是请求的所有的 header ,设想一下假使说我现在要写一个判断某个标准 header 的值是否等于某个值的时候,是直接用`$_SERVER['HTTP_XXX']`好还是先手动拉取一下全部的 header 到一个 array 再取值好?
    当然那个函数也有它的用处,上面我强调了是获取标准已经有了通用定义的 header (比如 Accept, Host ),如果碰到客户端需要通过 header 发送某些自定义 header 时就需要拿`getallheaders`取了,最典型的例子是我曾经抓过某个手游的请求,那个手游就是像我说的这样通过几个特定 header 向后端通知当前客户端版本号和手机信息的
    mokeyjay
        5
    mokeyjay  
       2016-10-07 17:19:55 +08:00 via Android
    何必浪费性能多跑一个函数呢…更何况这函数还有兼容性要求
    tabris17
        6
    tabris17  
    OP
       2016-10-07 18:04:02 +08:00 via iPhone
    @mingyun cli 下这个函数不可用
    abc123ccc
        7
    abc123ccc  
       2016-11-07 18:51:03 +08:00
    getallheaders 在 apache 下可用,在 nginx 没有试成功
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2734 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 12:05 · PVG 20:05 · LAX 04:05 · JFK 07:05
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.