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ć?

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.


ś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()));

7

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

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

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();

0

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

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

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,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.