2013-07-04 2 views

답변

2

: 당신 example.org, 당신이 주위에 추가해야 나머지를주지

$this->getRequest()->getServer('HTTP_HOST') 

.

2

허용되는 대답은 완벽하지만, 몇 가지 사항을 염두에 두시기 바랍니다.

$this->getRequest(); 

정도로

$this->_request 

getRequest 방법 좀 더 $_request 노출 이상 수행하고, 컨트롤러가 보호 $_request 속성을 갖기 때문에, necessairy없는 오버 헤드를 의미 기능/방법 호출 인 속성 (공개 메소드) :

public function getRequest() 
{ 
    return $this->_request; 
} 

은 약간 더 성능이 있어야합니다. 당신이 getServer 방법에 대한 소스를 보면 또한 :

public function getServer($key = null, $default = null) 
{ 
    if (null === $key) { 
     return $_SERVER; 
    } 

    return (isset($_SERVER[$key])) ? $_SERVER[$key] : $default; 
} 

정말 문법 설탕 이외의 디폴트 값을 제공하지 않고 방법을 사용하여 아무 문제가 없었다.
가장 빠른 방법은 항상 그러나

$_SERVER['HTTP_HOST']; 

, 두 세계의 최고를 결합하는 것, 가장 안전한 (대부분의 ZF와 같은 방법은) 다음과 같습니다

$this->_request->getServer('HTTP_HOST', 'localhost');//default to localhost, or whatever you prefer. 

당신이있어 전체 코드를 수에 대한 수 찾고 :

$base = 'http'; 
if ($this->_request->getServer('HTTPS', 'off') !== 'off') 
{ 
    $base .= 's'; 
} 
$base .= '://'.$this->_request->getServer('SERVER_NAME', 'localhost').'/'; 

어느, 귀하의 경우, http://expample.org/ 발생한다.
see here 당신이 얻을 수있는 SERVER 매개 변수의 전체 목록, 의미 및 값은 무엇입니까?