【问题标题】:Is there a apache_request_headers alternatve for displaying HTTP Headers是否有显示 HTTP 标头的 apache_request_headers 替代方案
【发布时间】:2013-08-04 10:51:16
【问题描述】:

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

这是我一直用来练习的一个小脚本。该脚本适用于我的本地服务器,并且与在此问题上发布的其他所有人一样,它不适用于我的 Web 服务器。我得出的结论是,这是因为 Apache 没有作为模块安装。我与我的托管服务提供商交谈。他们说除了我需要找到“apache_request_headers”的替代方案外,他们无法告诉我任何事情。我已经查看了此站点上有关此主题的所有先前发布的问题,但我无法看到它们是如何组合在一起的。如何使用此处的示例来完成我的最终结果。像这样【问题】:Call to undefined function apache_request_headers()

我的代码:

<?php
$headers = apache_request_headers();

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

我的错误:

Fatal error: Call to undefined function apache_request_headers() in /home/ncgotggb/public_html/ezalternatives.com/index.php on line 2

今年我一直在学习,它是自学的,而且速度很快,所以我对很多这些概念还是新手。在这一点上,我别无选择,我非常投入并且需要完成它。显示您的答案时如果您以完整的形式展示您的解决方案,我们将不胜感激。

【问题讨论】:

标签: php apache http-headers


【解决方案1】:

我发现我在 ISP Config 中的网站设置为将 PHP 设置为“Fast-CGI” - 将其更改为“MOD-PHP”可以很好地解决问题。

【讨论】:

【解决方案2】:

听起来您的本地服务器正在运行 Apache 而您的远程服务器不是,因为此功能仅适用于 Apache(除非服务器运行 PHP 5.4.0,否则它也适用于 FastCGI。

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

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 );
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-01-29
    • 1970-01-01
    • 1970-01-01
    • 2010-10-03
    • 2020-10-07
    • 2012-09-02
    • 2016-08-06
    相关资源
    最近更新 更多