如何从mediawiki扩展中获取http标头?

时间:2013-03-01 09:45:06

标签: php mediawiki

问题

我想检查媒体wiki扩展中的http标头。特别是如果其中一个标题存在,我将采取行动。

背景

我是php和mediawiki的新手。我正在mediawiki上进行第二次扩展。如果特定的http标头是页面请求的一部分,我想采取特定的操作。我现在确信在正确的时间调用了钩子,但不幸的是我似乎无法抓住http头。

$extensionObject = new MyExtension;
$wgHooks['ArticlePageDataBefore'][] = array($extensionObject, 'onArticlePageDataBefore');

class MyExtension{
    public function onArticlePageDataBefore( &$article, &$fields ) {
        $headers =mygetallheaders();
        ...do something with the headers
        return true;
    }
    public function mygetallheaders()   {
        ...this is the function I am trying to write
        return $headers;
    }

软件堆栈

  • MediaWiki:1.20.2
  • PHP:5.3.3(apache2handler)
  • MySQL:5.1.61

目前已尝试过。

以下两种方法都返回一个空数组

  • apache_request_headers
  • getallheaders

$ _SERVER变量为空

感谢您的帮助

1 个答案:

答案 0 :(得分:2)

public function onArticlePageDataBefore( &$article, &$fields ) {
    global $wgRequest;
    if ( $wgRequest->getHeader( 'My-Cool-Header' ) == 42 {
            PROFIT!
    }
    return true;
}