2014-02-17 5 views
3

URL (표시 줄에서 보이는 URL)을 얻는 방법이 궁금합니다. 나는 그것을 구글 위해 노력했다, 답변의 많은이 작성하는 것입니다 :표시 URL 가져 오기

$url= "http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; 

을하지만 당신에있는 파일의 경로를 얻을 것이다 난 그냥 같은, 눈에 보이는 URL을 좀하고 싶습니다. :

www.something.com/index.php?page=teams 

그리고 나서 볼 수있는 URL 만 포함하고 포함 된 URL은 가져 오지 못합니다. 이 작업을 수행 할 때 다음과 같이 표시됩니다.

www.something.com/search.php 

포함 된 파일 search.php에 URL이 인쇄되어 있습니다.

내 질문을 이해하기를 바랍니다. 다소 문제는 있지만, 제 문제를 설명하기가 어렵습니다. $_SERVER['REQUEST_URI']

후 : URL에 대한

+1

을 당신이 URL을 뺀 프로토콜을 원하는 건가요? ('http : //') – George

+0

아니요. 나는 "보이는"URL을 원합니다. 물음표와 물건으로. –

+0

'보이는'URL이 무슨 뜻인지 모르겠다. 내 경우에는 전체 URL이 보인다 .. – George

답변

3

? URL에서 : $_SERVER['QUERY_STRING']

+0

대답 주셔서 감사합니다.하지만 그것을 작동하지 않을 수 있습니다 .. 그것은 단지 때마다 내가 query_string writting 때 아무것도 표시하지 않습니다 .. –

+0

www.domain.com /? type = home –

+0

0

이 도움이 될 수 있습니다 :

public function getUri() 
{ 
    if (!isset($_SERVER['REQUEST_URI']) or !isset($_SERVER['SCRIPT_NAME'])) { 
     return ''; 
    } 
$uri = $_SERVER['REQUEST_URI']; 
if (strpos($uri, $_SERVER['SCRIPT_NAME']) === 0) { 
    $uri = substr($uri, strlen($_SERVER['SCRIPT_NAME'])); 
} elseif (strpos($uri, dirname($_SERVER['SCRIPT_NAME'])) === 0) { 
    $uri = substr($uri, strlen(dirname($_SERVER['SCRIPT_NAME']))); 
} 
// This section ensures that even on servers that require the URI to be in the query string (Nginx) a correct 
// URI is found, and also fixes the QUERY_STRING server var and $_GET array. 
if (strncmp($uri, '?/', 2) === 0) { 
    $uri = substr($uri, 2); 
} 
$uri = parse_url($uri, PHP_URL_PATH); 
// Do some final cleaning of the URI and return it 
    return str_replace(array('//', '../'), '/', trim($uri, '/')); 
} 
0

사용 $_SERVER['REQUEST_URI']

$actual_link = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";