Jak uzyskać pełny adres URL bieżącej strony?

32

Potrzebuję uzyskać pełny adres URL aktualnie otwartej strony. Używam następującego kodu, ale zwraca http://localhost/mysite/page_name.

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

Nie wystarczy wypełnić mój kod; Chcę uzyskać wartości przekazywane z adresem URL as http://localhost/mysite/page_name/value1=value&value2=value.

Jak mogę to zrobić?

abd
źródło

Odpowiedzi:

32

Próbowałeś użyć request_uri () ?

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

To powinno wystarczyć. Sam tego nie próbowałem i może trochę odpoczywam, ale proponuję spróbować. Z JavaScript można użyć window.location.hrefzmiennej.

optimusprime619
źródło
świetna sztuczka użyłem $ _SERVER ['REQUEST_URI'], aby uzyskać adres URL, ale kiedy drukuję adres URL: nazwa_pliku / nazwa_strony? field_empf_salaryfrom_tid = Wszystko i wartość_emp. / nazwy
Abd
2
@abd Prawdopodobnie szukasz$_SERVER['QUERY_STRING']
Clive
Czy mogę umieścić każdą wartość z adresu URL w zmiennej? Podobnie jak wartość (field_empf_salaryfrom_tid = Wszystkie) w $ s
abd
Sugeruję dodanie protokołu do odpowiedzi za pomocąisset($_SERVER["HTTPS"]) ? 'https' : 'http';
augusto
request_uri()działa nawet na 404 stronach, to naprawdę dobra rzecz.
leymannx
24

Oto jak uzyskać bezwzględny adres URL bieżącej strony za pomocą interfejsu API Drupal:

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

Jeśli potrzebujesz również dodatkowych parametrów kwerendy (nie q), możesz użyć:

$current_url = url(current_path(), array('absolute' => TRUE, 
                                         'query' => drupal_get_query_parameters()));
David Thomas
źródło
7

Możesz użyć następującego kodu.

global $base_root;
$current_url = $base_root . request_uri();
echo $current_url;
kumar
źródło
3

Wypróbuj zmienną $ base_url , zapewnia instalacyjny adres URL Drupala bez „/”, a current_path () zwraca ścieżkę aktualnie oglądanej strony.

global $base_url;
$current_path = $base_url . '/' . current_path();
Jogesh
źródło
0

Myślę, że najlepszym sposobem na to jest użycie API url () w ten sposób

url('your/drupal/path', array('absolute' => TRUE));
Roberto Peruzzo
źródło
Pytanie dotyczy strony ogólnej, a nie tej, dla której ścieżka jest znana.
kiamlaluno
Ok, można zastąpić your/drupal/path¡z current_path(), jak @ david-Thomas napisał wcześniej.
Roberto Peruzzo,