[PHP] Jak pobrać adres strony?

Gdy zajdzie potrzeba pobrania adresu strony, na której użytkownik aktualnie się znajduje mamy możliwość użycia do tego celu tablicy $_SERVER z kluczem 'SERVER_NAME'. Z tablicy $_SERVER możemy wyświetlić takie dane jak adres IP klienta, wersję systemu operacyjnego, nazwę przeglądarki www i wiele innych.

Pobranie adresu strony, na której znajduje się użytkownik sprowadza się dosłownie do połączenia dwóch elementów tablicy $_SERVER - elementu SERVER_NAME oraz REQUEST_URI. Element o kluczu SERVER_NAME zawiera nazwę hosta serwera, na którym wykonywany jest skrypt, a element z kluczem REQUEST_URI pobiera wszystko to, co zostało wpisane po nazwie domeny np. '/index.php'. Tak więc, aby wyświetlić adres strony lub adres do skryptu, łączymy te dwa elementy:

echo $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];

Powyższy przykład wyświetli nam URL, pod którym aktualnie się znajdujemy, ale bez przedrostka http/https. Aby do ciągu z URL'em dołączana była nazwa protokołu, musimy użyć jeszcze jednego elementu tablicy $_SERVER, a mianowicie HTTPS, który nie będzie pusty, jeśli żądanie nastąpiło właśnie przez ten protokół. Zastosowanie prostego warunku umożliwi nam dołączanie przedrostka z nazwą wersji protokołu w zależności, który jest dostępny:

if(isset($_SERVER['HTTPS'])) {

$current = 'https';

}

else {

$current = 'http';

}

echo $current . '://' . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];

Innym rozwiązaniem może być manualne zdefiniowanie zmiennej z nazwą protokołu i domeny, a następnie dołączenie do niej zmiennej $_SERVER['REQUEST_URI']:

$host = 'https://www.example.com';
$current = $host . $_SERVER['REQUEST_URI'];

echo $current;

Komentarze

  1. Dziękuje za artykuł, bardzo pomocny :)

    OdpowiedzUsuń
  2. Super! Dzięki tej podpowiedzi zautomatyzowaliśmy tag rel ="canonical" - dziękujemy

    OdpowiedzUsuń

Publikowanie komentarza

Popular

[HTML] Jak wstawić obrazek?

[PHP|HTML] Odświeżenie strony

[PHP] Jak sprawdzić typ zmiennej?