【问题标题】:Get $_SERVER variables in zf2 within controller在控制器中的 zf2 中获取 $_SERVER 变量
【发布时间】:2014-12-24 06:38:40
【问题描述】:

在控制器中,如何在 zf2 中获取 $_SERVER 变量?

比如我想得到$_SERVER['HTTP_HOST']$_SERVER['REMOTE_ADDR']等等。

我尝试过使用以下方法:

$this->getRequest()->getServer();

但这会导致:

Fatal error: Call to undefined method Zend\Http\Request::getServer() 

【问题讨论】:

    标签: php controller zend-framework2 server superglobals


    【解决方案1】:

    要从控制器中获取 $_SERVER 值,我可以这样做:

    $request    = new \Zend\Http\PhpEnvironment\Request();
    $httpHost   = $request->getServer('HTTP_HOST');
    $remoteAddr = $request->getServer('REMOTE_ADDR');
    

    由于我正在回答我自己的问题,我很想知道是否有任何其他推荐的解决方案。

    【讨论】:

      【解决方案2】:

      如果你的控制器扩展了 AbstractActionController,你可以在 zf2 v2.4 中使用$this->getRequest()->getServer()->get('REMOTE_ADDR');

      class ListController extends AbstractActionController
      {
          public function indexAction()
          {
              $addr = $this->getRequest()->getServer()->get('REMOTE_ADDR');
      
              \Zend\Debug\Debug::dump($addr); die();
          }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-04-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多