Nevyhnutné 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 sa v adrese URL aktuálnej stránky používa 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 dotazu, ak existuje v adrese URL aktuálnej stránky. |
Príklad 1: Zobrazte adresu URL aktuálnej stránky pomocou podmieneného príkazu
Nasledujúci príklad ukazuje, ako je možné použiť podmienený príkaz na získanie protokolu použitého v adrese URL aktuálnej stránky. Vytvorte súbor PHP s nasledujúcim skriptom.
Hodnota $ _SERVER ['HTTP_HOST'] sa používa na získanie názvu domény aktuálnej adresy URL. Hodnota $ _SERVER ['REQUEST_URI'] sa používa na získanie názvu požadovaného zdroja. isset () Funkcia sa používa na kontrolu, či je $ _SERVER ['HTTPS'] množina alebo nie, a ak je nastavená, potom skontrolujte hodnotu $ _SERVER ['HTTPS'], či je na alebo nie. Ďalej sa hodnoty týchto troch premenných skombinujú s '//:' na získanie celej adresy URL aktuálnej stránky.
// Prečítajte si názov domény aktuálnej stránky$ domain = $ _SERVER ['HTTP_HOST'];
// Prečítajte si požadovaný zdroj
$ resource = $ _SERVER ['REQUEST_URI'];
// Zistí protokol aktuálnej adresy URL
if (isset ($ _ SERVER ['HTTPS']) && $ _SERVER ['HTTPS'] === 'on')
$ protokol = "https";
inak
$ protokol = "http";
// Kombináciou všetkých častí získate úplnú adresu URL
$ url = $ protokol.„: //“.$ doména.$ zdroj;
// Vytlačí adresu URL aktuálnej stránky
ozvena “
Adresa URL aktuálneho
stránka je:
„. $ url;?> Výkon:
Po spustení skriptu zo servera sa objaví nasledujúci výstup. Hodnota $ _SERVER ['HTTPS'] nie je na pre lokálny server. Výstup teda ukazuje http protokol pre aktuálnu adresu 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 s nasledujúcim skriptom.
Ak podmienka sa v predchádzajúcom príklade používa 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. isset () funkcia slúži na kontrolu, či je $ _SERVER ['HTTPS'] množina alebo nie, a či je hodnota $ _SERVER ['HTTPS'] na, potom ternárny operátor vráti HTTPS, inak vráti HTTP. Ostatné časti adresy URL sa načítajú a tlačia ako v predchádzajúcom príklade.
// Zistí protokol aktuálnej adresy URL$ protocol = (isset ($ _ SERVER ['HTTPS']) && $ _SERVER ['HTTPS']
== 'na' ? "https": "http");
// Prečítajte si názov domény aktuálnej stránky
$ domain = $ _SERVER ['HTTP_HOST'];
// Prečítajte si požadovaný zdroj
$ resource = $ _SERVER ['REQUEST_URI'];
// Kombináciou všetkých častí získate úplnú adresu URL
$ url = $ protokol.„: //“.$ doména.$ zdroj;
// Vytlačí adresu URL aktuálnej stránky
ozvena “
Adresa URL aktuálnej stránky je:
„. $ url;?>
Výkon:
Po spustení skriptu zo servera sa objaví 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: Zobraziť adresu URL aktuálnej stránky na základe čísla portu
V predchádzajúcich dvoch príkladoch sa na zistenie protokolu aktuálnej adresy URL stránky použije hodnota $ _SERVER ['HTTPS'] a s adresou URL sa nepoužije žiadny reťazec dopytu. Nasledujúci príklad ukazuje, ako možno premennú $ _SERVER ['SERVER_PORT'] použiť na zistenie protokolu a na získanie celej adresy URL pomocou reťazca dotazu. Vytvorte súbor PHP s nasledujúcim skriptom.
Tu sa na zistenie protokolu používa viac logických podmienok a ternárny operátor. Ak je hodnota $ _SERVER ['HTTPS'] prázdna alebo nastavená na vypnutý, potom skontroluje hodnotu $ _SERVER ['SERVER_PORT'] a zistí protokol aktuálnej adresy URL. Premenná $ _SERVER ['QUERY_STRING'] sa používa na načítanie hodnoty reťazca dotazu z adresy URL.
// Zistí protokol aktuálnej adresy URL$ protokol = (((!prázdny ($ _ SERVER ['HTTPS']) && $ _SERVER ['HTTPS']
!= 'vypnuté') || $ _SERVER ['SERVER_PORT'] == 443) ? "https: //": "http: //";
// Prečítajte si názov domény aktuálnej stránky
$ domain = $ _SERVER ['HTTP_HOST'];
// Prečítajte si požadovaný zdroj
$ resource = $ _SERVER ['REQUEST_URI'];
// Prečítajte si hodnotu reťazca dotazu
$ query = $ _SERVER ['QUERY_STRING'];
// Kombináciou všetkých častí získate úplnú adresu URL
$ url = $ protokol.$ doména.$ zdroj;
// Vytlačí adresu URL aktuálnej stránky
ozvena “
Úplná adresa URL aktuálnej stránky je:
„. $ url;// Vytlačí časť reťazca dotazu
ozvena “
Reťazec dotazu je:
„. $ dopyt;?>
Výkon:
Nasledujúci výstup sa objaví po vykonaní vyššie uvedeného skriptu zo servera bez reťazca dotazu. V adrese URL nie je uvedený žiadny reťazec dopytu. Výstup teda zobrazuje prázdny reťazec dotazu.
Po vykonaní vyššie uvedeného skriptu zo servera s reťazcom dotazu sa objaví nasledujúci výstup. Nasledujúci výstup zobrazuje adresu URL s reťazcom dotazu a reťazcom dotazu osobitne.
Záver
Rôzne spôsoby načítania úplnej adresy URL aktuálnej stránky sú v tejto príručke zobrazené pomocou rôznych príkladov. V tomto výučbe je tiež znázornený spôsob oddelenia adresy URL a reťazca dotazu. Dúfajme, že tento výukový program pomôže čitateľom spoznať spôsob čítania úplnej adresy URL aktuálnej stránky pomocou skriptu PHP.