首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有用于显示Headers的apache_request_headers选项吗?

有用于显示Headers的apache_request_headers选项吗?
EN

Stack Overflow用户
提问于 2013-08-03 04:25:34
回答 2查看 7.4K关注 0票数 6

我目前正在为在线MMO开发一个IGB (游戏中浏览器)的应用程序。对于第三方开发,浏览器发送带有游戏信息的HTTP报头,如位置、项ID、项类型ID等。

这是我一直在练习的一个小剧本。这个脚本在我的本地服务器上工作,并且和其他在这个问题上发布的人一样,它在我的web服务器上不起作用。我得出的结论是,这是因为Apache没有作为一个模块安装。我和我的主机提供商谈过了。他们说,除了我需要找到"apache_request_headers“的替代方案之外,他们什么也不能告诉我。我已经在这个网站上查看了所有以前在这个主题上发布的问题,我不知道它是如何整合在一起的。如何用这里的例子来完成我的最终结果。就像这个问题:headers()

我的代码:

代码语言:javascript
复制
<?php
$headers = apache_request_headers();

foreach ($headers as $header => $value) {
    echo "$header: $value <br />\n";
}
?>

我的错误:

代码语言:javascript
复制
Fatal error: Call to undefined function apache_request_headers() in /home/ncgotggb/public_html/ezalternatives.com/index.php on line 2

今年我一直在学习,这是自学成才的,而且速度很快,所以我对这些概念还不太了解。在这一点上,我没有选择,我是坚定的,需要完成它。在显示您的答案时,如果您以完整的形式展示您的解决方案,将不胜感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-08-03 06:42:17

听起来您的本地服务器正在运行Apache,而远程服务器则不运行,因为这个函数只适用于Apache (除非服务器运行PHP5.4.0,那么它也可以在FastCGI下运行。

在此函数的PHP手册页面上,其中一个评论者包含了一个替换函数,只有在内置函数不存在时才会声明该函数。我还没有测试过这个功能,但我在其他地方看到了相同的功能。

代码语言:javascript
复制
if( !function_exists('apache_request_headers') ) {
    function apache_request_headers() {
        $arh = array();
        $rx_http = '/\AHTTP_/';

        foreach($_SERVER as $key => $val) {
            if( preg_match($rx_http, $key) ) {
                $arh_key = preg_replace($rx_http, '', $key);
                $rx_matches = array();
           // do some nasty string manipulations to restore the original letter case
           // this should work in most cases
                $rx_matches = explode('_', $arh_key);

                if( count($rx_matches) > 0 and strlen($arh_key) > 2 ) {
                    foreach($rx_matches as $ak_key => $ak_val) {
                        $rx_matches[$ak_key] = ucfirst($ak_val);
                    }

                    $arh_key = implode('-', $rx_matches);
                }

                $arh[$arh_key] = $val;
            }
        }

        return( $arh );
    }
}
票数 9
EN

Stack Overflow用户

发布于 2014-03-03 19:49:46

我发现我在ISP Config中的站点被设置为“快速-CGI”--将其转换为“MOD”,很好地修复了这些问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18029229

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档