Načítajte úplnú adresu URL v PHP

Retrieve Full Url Php



V PHP môžu byť použité dva typy globálnych premenných: superglobálna premenná a užívateľom definovaná premenná. $ _SERVER je superglobálna premenná poľa, ktorá sa používa na získanie úplnej cesty k aktuálnej stránke. Na získanie úplnej adresy URL stránky je potrebný aj protokol (HTTP alebo HTTPS) adresy URL. Ak $ _SERVER ['HTTPS'] vracia „Zapnuté“, potom sa s adresou URL použije HTTPS, v opačnom prípade HTTP bude použitý. Ako je možné získať úplnú adresu URL aktuálnej stránky pomocou súboru $ _SERVER pole bolo vysvetlené v tomto návode.

Potrebné premenné

Na zistenie adresy URL aktuálnej stránky sú potrebné nasledujúce superglobálne premenné.







Superglobálne premenné Účely
$ _SERVER ['HTTPS'] Vracia sa to na ak je v adrese URL aktuálnej stránky použitý protokol HTTPS.
$ _SERVER ['HTTP_HOST'] Vráti názov servera aktuálnej stránky.
$ _SERVER ['REQUEST_URI'] Vráti požadovaný názov zdroja.
$ _SERVER ['SERVER_PORT'] Vráti číslo portu servera.
$ _SERVER ['QUERY_STRING'] Vráti hodnotu reťazca dopytu, ak existuje v adrese URL aktuálnej stránky.

Príklad 1: Zobrazte URL aktuálnej stránky pomocou podmieneného príkazu

Nasledujúci príklad ukazuje, ako možno podmienený príkaz použiť na získanie protokolu použitého v adrese URL aktuálnej stránky. Vytvorte súbor PHP pomocou nasledujúceho skriptu.



Hodnota $ _SERVER [‘HTTP_HOST‘] sa používa na získanie názvu domény aktuálnej adresy URL. Na získanie názvu požadovaného zdroja sa používa hodnota $ _SERVER [‘REQUEST_URI‘]. preč) funkcia sa používa na kontrolu, či je $ _SERVER ['HTTPS'] sada alebo nie, a ak je nastavená, potom skontrolujte hodnotu $ _SERVER ['HTTPS'], či je na alebo nie. Ďalej sú hodnoty týchto troch premenných skombinované s '//:', aby sa získala úplná adresa URL aktuálnej stránky.




// Prečítajte si názov domény aktuálnej stránky
$ doména = $ _SERVER['HTTP_HOST'];
// Prečítajte si požadovaný zdroj
$ zdroj = $ _SERVER[„REQUEST_URI“];
// Zistite protokol aktuálnej adresy URL
keby( preč ($ _SERVER[„HTTPS“]) && $ _SERVER[„HTTPS“] === 'na')
$ protokol = 'https';
inak
$ protokol = 'http';

// Skombinovaním všetkých častí získate úplnú adresu URL
$ URL = $ protokol.': //'.$ doména.$ zdroj;
// Vytlačí adresu URL aktuálnej stránky
zahodil '

URL adresa aktuálneho
stránka je:

'
. $ URL;?>

Výkon:





Po spustení skriptu zo servera sa zobrazí nasledujúci výstup. Hodnota $ _SERVER [‘HTTPS‘] nie je na pre lokálny server. Výstup teda ukazuje http protokol pre aktuálnu URL.



Príklad 2: Zobrazte adresu URL aktuálnej stránky pomocou ternárneho operátora

Nasledujúci príklad ukazuje spôsob, ako získať úplnú adresu URL aktuálnej stránky pomocou ternárneho operátora. Vytvorte súbor PHP pomocou nasledujúceho skriptu.

Ak podmienka sa používa v predchádzajúcom príklade na zistenie, ktorý protokol sa používa v adrese URL aktuálnej stránky. Rovnaká úloha sa vykonáva pomocou ternárneho operátora v tomto skripte. preč) funkcia sa používa na kontrolu, či je $ _SERVER ['HTTPS'] nastavená alebo nie, a či je hodnota $ _SERVER ['HTTPS'] dňa, potom ternárny operátor vráti HTTPS, inak vráti HTTP. Ostatné časti adresy URL sa načítajú a vytlačia ako v predchádzajúcom prípade.


// Zistite protokol aktuálnej adresy URL
$ protokol = ( preč ($ _SERVER[„HTTPS“]) && $ _SERVER[„HTTPS“]
== 'na'?'https' : 'http');
// Prečítajte si názov domény aktuálnej stránky
$ doména = $ _SERVER['HTTP_HOST'];
// Prečítajte si požadovaný zdroj
$ zdroj = $ _SERVER[„REQUEST_URI“];
// Skombinovaním všetkých častí získate úplnú adresu URL
$ URL = $ protokol.': //'.$ doména.$ zdroj;
// Vytlačí adresu URL aktuálnej stránky
zahodil '

Adresa URL aktuálnej stránky je:

'
. $ URL;
?>

Výkon:

Po spustení skriptu zo servera sa zobrazí nasledujúci výstup. Hodnota $ _SERVER [‘HTTPS‘] nie je na pre lokálny server. Výstup teda zobrazuje protokol HTTP pre aktuálnu adresu URL.

Príklad 3: Zobrazte adresu URL aktuálnej stránky podľa čísla portu

V predchádzajúcich dvoch príkladoch sa hodnota $ _SERVER [‘HTTPS‘] používa na zistenie protokolu aktuálnej adresy URL stránky a s adresou URL sa nepoužíva žiadny reťazec dopytu. Nasledujúci príklad ukazuje, ako možno premennú $ _SERVER [‘SERVER_PORT‘] použiť na vyhľadanie protokolu a získanie celej adresy URL pomocou reťazca dopytu. Vytvorte súbor PHP pomocou nasledujúceho skriptu.

Na zistenie protokolu sa tu používa viacero logických podmienok a ternárny operátor. Ak je hodnota $ _SERVER [‘HTTPS‘] prázdna alebo je nastavená na vypnuté, potom skontroluje hodnotu $ _SERVER [‘SERVER_PORT‘], aby zistil protokol aktuálnej adresy URL. Na získanie hodnoty reťazca dopytu z adresy URL sa používa premenná $ _SERVER [‘QUERY_STRING‘].


// Zistite protokol aktuálnej adresy URL
$ protokol = ((! prázdny ($ _SERVER[„HTTPS“]) && $ _SERVER[„HTTPS“]
! = 'vypnuté') || $ _SERVER['PORT SERVERA'] == 443)?'https: //' : 'http: //';
// Prečítajte si názov domény aktuálnej stránky
$ doména = $ _SERVER['HTTP_HOST'];
// Prečítajte si požadovaný zdroj
$ zdroj = $ _SERVER[„REQUEST_URI“];
// Prečítajte si hodnotu reťazca dopytu
$ dotaz = $ _SERVER[„QUERY_STRING“];
// Skombinovaním všetkých častí získate úplnú adresu URL
$ URL = $ protokol.$ doména.$ zdroj;
// Vytlačí adresu URL aktuálnej stránky
zahodil '

Úplná adresa URL aktuálnej stránky je:

'
. $ URL;
// Vytlačte časť reťazca dopytu
zahodil '

Reťazec dopytu je:

'
. $ dotaz;
?>

Výkon:

Nasledujúci výstup sa objaví po spustení vyššie uvedeného skriptu zo servera bez akéhokoľvek reťazca dotazu. V adrese URL nie je uvedený žiadny reťazec dotazu. Výstup teda zobrazuje prázdny reťazec dotazu.

Nasledujúci výstup sa objaví po spustení vyššie uvedeného skriptu zo servera pomocou reťazca dotazu. Nasledujúci výstup zobrazuje adresu URL s reťazcom dotazu a reťazcom dotazu oddelene.

Záver

V tomto návode sú pomocou rôznych príkladov uvedené rôzne spôsoby získavania úplnej adresy URL aktuálnej stránky. V tomto návode je tiež uvedený spôsob, akým je možné oddeliť adresu URL a reťazec dotazu. Našťastie tento tutoriál pomôže čitateľom poznať spôsob čítania celej adresy URL aktuálnej stránky pomocou skriptu PHP.