현재 페이지의 전체 URL을 얻으려면 어떻게합니까?


32

현재 열린 페이지의 전체 URL을 가져와야합니다. 다음 코드를 사용하지만을 반환합니다 http://localhost/mysite/page_name.

$path = isset($_GET['q']) ? $_GET['q'] : '<front>';
$link = url($path, array('absolute' => TRUE));

내 코드를 완성하기에 충분하지 않습니다. URL과 함께 전달 된 값을로 얻고 싶습니다 http://localhost/mysite/page_name/value1=value&value2=value.

어떻게해야합니까?

답변:


32

request_uri ()를 사용해 보셨습니까 ?

$_SERVER['HTTP_HOST'] . request_uri();

트릭을해야합니다. 나는 그것을 직접 시도하지 않았으며 조금 벗어 났을 수도 있지만 시도해 보는 것이 좋습니다. JavaScript에서 window.location.href변수를 사용할 수 있습니다 .


훌륭한 트릭 $ _SERVER [ 'REQUEST_URI']를 사용하여 URL을 가져 왔지만 URL을 인쇄 할 때 : sitename / pagename? field_empf_salaryfrom_tid = All & field_emp_date_value [value] [year] = & field_emp_date_value [value] [month] = 사이트 이름을 제거하는 방법 / pagename
abd

2
@abd 당신은 아마 찾고 있습니다$_SERVER['QUERY_STRING']
Clive

URL의 모든 값을 변수에 넣을 수 있습니까? $ s
abd

나는과 대답에 프로토콜을 추가하는 것이 좋습니다isset($_SERVER["HTTPS"]) ? 'https' : 'http';
아우

request_uri()심지어 404 페이지에서도 작동합니다. 정말 좋습니다.
leymannx

24

Drupal API를 사용하여 현재 페이지의 절대 URL을 얻는 방법은 다음과 같습니다.

$current_url = url(current_path(), array('absolute' => TRUE));

추가 (q가 아닌) 쿼리 문자열 매개 변수가 필요한 경우 다음을 사용할 수 있습니다.

$current_url = url(current_path(), array('absolute' => TRUE, 
                                         'query' => drupal_get_query_parameters()));

7

다음 코드를 사용할 수 있습니다.

global $base_root;
$current_url = $base_root . request_uri();
echo $current_url;

3

$ base_url 변수를 사용 해보고 "/"없이 Drupal 설치 URL을 제공하고 current_path () 는 현재보고있는 페이지의 경로를 반환합니다.

global $base_url;
$current_path = $base_url . '/' . current_path();

0

가장 좋은 방법은 url () API를 사용하는 것입니다.

url('your/drupal/path', array('absolute' => TRUE));

문제는 경로가 알려진 페이지가 아닌 일반 페이지를 요구하는 것입니다.
kiamlaluno

좋아, 당신은 대체 할 수 your/drupal/path¡current_path()@ 데이비드 토마스 전에 쓴.
Roberto Peruzzo
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.