Odzyskać pełny adres URL w PHP

Odzyskać pełny adres URL w PHP
W PHP można użyć dwóch rodzajów zmiennych globalnych: zmienna superglobal i zmienna zdefiniowana przez użytkownika. $ _Server to zmienna tablicy superglobal, która służy do pobrania pełnej ścieżki bieżącej strony. Protokół (HTTP lub HTTPS) URL jest również wymagany do uzyskania pełnego adresu URL strony. Jeśli $ _Server ['https'] zwroty 'NA', wtedy HTTPS będzie używany z adresem URL, w przeciwnym razie, Http będzie użyty. Jak można pobrać pełny adres URL bieżącej strony $ _Server tablica została wyjaśniona w tym samouczku.

Niezbędne zmienne

W celu znalezienia adresu URL bieżącej strony wymagane są następujące zmienne Superglobal.

Zmienne superglobalne Cele
$ _Server ['https'] Wraca NA Jeśli protokół HTTPS jest używany w adresie URL bieżącej strony.
$ _Server ['http_host'] Zwraca nazwę serwera bieżącej strony.
$ _Server ['request_uri'] Zwraca żądaną nazwę zasobów.
$ _Server ['server_port'] Zwraca numer portu serwera.
$ _Server ['query_string'] Zwraca wartość ciągu zapytania, jeśli istnieje na adresie URL bieżącej strony.

Przykład 1: Wyświetl adres URL bieżącej strony za pomocą instrukcji warunkowej

Poniższy przykład pokazuje, w jaki sposób instrukcję warunkową można użyć do uzyskania protokołu użytego w adresie URL bieżącej strony. Utwórz plik PHP z następującym skryptem.

Wartość $ _server ['http_host'] jest używana do uzyskania nazwy domeny bieżącego adresu URL. Wartość $ _server ['request_URI'] jest używana do uzyskania nazwy żądanego zasobu. isset () Funkcja służy do sprawdzenia, czy $ _server ['https'] jest zestawem lub nie, a jeśli ustawiona, to sprawdź wartość $ _Server ['https'] NA albo nie. Następnie wartości tych trzech zmiennych są połączone z „//:” Aby pobrać pełny adres URL bieżącej strony.

// Przeczytaj nazwę domeny bieżącej strony
$ domain = $ _Server ['http_host'];
// Przeczytaj żądany zasób
$ zasób = $ _SERVER ['request_uri'];
// Znajdź protokół obecnego adresu URL
if (isset ($ _ serwer ['https']) && $ _Server ['https'] === 'on')
$ protocol = "https";
w przeciwnym razie
$ protocol = "http";
// Połącz wszystkie części, aby uzyskać pełny adres URL
$ url = $ protokół.„: //”.$ domena.$ zasób;
// Wydrukuj adres URL bieżącej strony
Echo "

Adres URL bieżącego
Strona to:

". $ url;?>

Wyjście:

Następujące dane wyjściowe pojawi się po uruchomieniu skryptu z serwera. Wartość $ _server [„https '] nie jest NA dla serwera lokalnego. Więc wyjście pokazuje http protokół obecnego adresu URL.

Przykład 2: Wyświetl adres URL bieżącej strony za pomocą operatora trójskładnikowego

Poniższy przykład pokazuje sposób uzyskania pełnego adresu URL bieżącej strony za pomocą operatora trójskładnikowego. Utwórz plik PHP z następującym skryptem.

Jeśli Warunek jest używany w poprzednim przykładzie, aby dowiedzieć się, który protokół jest używany w adresie URL bieżącej strony. To samo zadanie odbywa się za pomocą operatora trójskładnikowego w tym skrypcie. isset () Funkcja służy do sprawdzenia, czy $ _server ['https'] jest zestawem, czy nie, a jeśli wartość $ _server ['https'] jest NA, wtedy operator trójskładnik zwróci HTTPS, w przeciwnym razie zwróci HTTP. Pozostałe części adresu URL są pobierane i drukowane jak poprzedni przykład.

// Znajdź protokół obecnego adresu URL
$ protocol = (isset ($ _ Server ['https']) && $ _Server ['https']
== 'on' ? „https”: „http”);
// Przeczytaj nazwę domeny bieżącej strony
$ domain = $ _Server ['http_host'];
// Przeczytaj żądany zasób
$ zasób = $ _SERVER ['request_uri'];
// Połącz wszystkie części, aby uzyskać pełny adres URL
$ url = $ protokół.„: //”.$ domena.$ zasób;
// Wydrukuj adres URL bieżącej strony
Echo "

Adres URL bieżącej strony to:

". $ url;
?>

Wyjście:

Następujące dane wyjściowe pojawi się po uruchomieniu skryptu z serwera. Wartość $ _server [„https '] nie jest NA dla serwera lokalnego. Tak więc wyjście pokazuje protokół HTTP dla bieżącego adresu URL.

Przykład 3: Wyświetl adres URL bieżącej strony na podstawie numeru portu

W poprzednich dwóch przykładach wartość $ _server ['https'] jest używana do znalezienia protokołu bieżącego adresu URL strony i nie jest używany z URL żaden ciąg zapytania. Poniższy przykład pokazuje, w jaki sposób można użyć zmiennej $ _server ['server_port']. Utwórz plik PHP z następującym skryptem.

Tutaj używa się wielu logicznych warunków i operatora trójskładnikowego do znalezienia protokołu. Jeśli wartość $ _server ['https'] jest pusta lub ustawiona na wyłączony, Następnie sprawdzi wartość $ _server ['server_port'], aby znaleźć protokół bieżącego adresu URL. $ _SERVER ['query_string'] Służy do pobierania wartości ciągu zapytania z adresu URL.

// Znajdź protokół obecnego adresu URL
$ protocol = (!pusty ($ _ Server ['https']) && $ _Server ['https']
!= „off”) || $ _Server ['server_port'] == 443) ? „https: //”: „http: //”;
// Przeczytaj nazwę domeny bieżącej strony
$ domain = $ _Server ['http_host'];
// Przeczytaj żądany zasób
$ zasób = $ _SERVER ['request_uri'];
// Przeczytaj wartość ciągu zapytania
$ query = $ _Server ['query_string'];
// Połącz wszystkie części, aby uzyskać pełny adres URL
$ url = $ protokół.$ domena.$ zasób;
// Wydrukuj adres URL bieżącej strony
Echo "

Pełny adres URL bieżącej strony to:

". $ url;
// Wydrukuj część ciągów zapytania
Echo "

Ciąg zapytania to:

". $ zapytanie;
?>

Wyjście:

Następujące dane wyjściowe pojawi się po wykonaniu powyższego skryptu z serwera bez żadnego ciągu zapytania. W adresie URL nie znajduje się ciąg. Więc wyjście pokazuje pusty ciąg zapytania.

Następujące dane wyjściowe pojawi się po wykonaniu powyższego skryptu z serwera za pomocą ciągu zapytania. Poniższe dane wyjściowe pokazuje adres URL z ciągiem zapytania i ciąg zapytania osobno.

Wniosek

Różne sposoby odzyskania pełnego adresu URL bieżącej strony są pokazane w tym samouczku za pomocą różnych przykładów. Sposób oddzielenia adresu URL i ciągu zapytania jest również pokazany w tym samouczku. Mamy nadzieję, że ten samouczek pomoże czytelnikom poznać sposób odczytania pełnego adresu URL bieżącej strony za pomocą skryptu PHP.