Pridobite celoten URL v PHP

Retrieve Full Url Php



V PHP lahko uporabimo dve vrsti globalnih spremenljivk: superglobalno spremenljivko in spremenljivko, ki jo določi uporabnik. $ _SERVER je spremenljivka matrike superglobal, ki se uporablja za pridobivanje celotne poti trenutne strani. Za pridobitev celotnega URL -ja strani je potreben tudi protokol (HTTP ali HTTPS) URL -ja. Če $ _SERVER ['HTTPS'] vrača 'Vklopljeno', potem bo z naslovom URL uporabljen HTTPS, sicer pa HTTP bo uporabljen. Kako lahko s pomočjo datoteke $ _SERVER matrika je bila razložena v tej vadnici.

Nujne spremenljivke

Naslednje superglobalne spremenljivke so potrebne, če želite izvedeti naslov URL trenutne strani.







Superglobalne spremenljivke Namen
$ _SERVER ['HTTPS'] Vrne se naprej če je v URL -ju trenutne strani uporabljen protokol HTTPS.
$ _SERVER ['HTTP_HOST'] Vrne ime strežnika trenutne strani.
$ _SERVER ['REQUEST_URI'] Vrne zahtevano ime vira.
$ _SERVER ['SERVER_PORT'] Vrne številko vrat strežnika.
$ _SERVER ['QUERY_STRING'] Vrne vrednost niza poizvedbe, če obstaja v naslovu URL trenutne strani.

Primer 1: Prikažite URL trenutne strani z uporabo pogojnega stavka

Naslednji primer prikazuje, kako lahko pogojni stavek uporabimo za pridobitev protokola, uporabljenega v URL -ju trenutne strani. Ustvarite datoteko PHP z naslednjim skriptom.



Vrednost $ _SERVER ['HTTP_HOST'] se uporablja za pridobitev imena domene trenutnega URL -ja. Vrednost $ _SERVER [‘REQUEST_URI’] se uporabi za pridobitev imena zahtevanega vira. odšel) funkcija se uporablja za preverjanje, ali je $ _SERVER ['HTTPS'] niz ali ne, in če je nastavljen, potem preverite vrednost $ _SERVER ['HTTPS'] ali je naprej ali ne. Nato se vrednosti teh treh spremenljivk združijo z „//:“ za pridobitev celotnega URL -ja trenutne strani.




// Preberite ime domene trenutne strani
$ domena = $ _SERVER['HTTP_HOST'];
// Preberite zahtevani vir
$ vir = $ _SERVER['REQUEST_URI'];
// Ugotovite protokol trenutnega URL -ja
če( odšel ($ _SERVER[»HTTPS«]) && $ _SERVER[»HTTPS«] === 'vklopljeno')
$ protokol = 'https';
drugače
$ protokol = 'http';

// Združite vse dele, da dobite celoten naslov URL
$ url = $ protokol.': //'.$ domena.$ vir;
// Natisnite naslov URL trenutne strani
vrgel ven '

Naslov URL trenutnega
stran je:

'
. $ url;?>

Izhod:





Po zagonu skripta s strežnika se prikaže naslednji izhod. Vrednost $ _SERVER ['HTTPS'] ni naprej za lokalni strežnik. Tako izhod prikazuje http protokol za trenutni URL.



Primer 2: Prikažite URL trenutne strani z uporabo ternarnega operaterja

Naslednji primer prikazuje način, kako s pomočjo trojnega operaterja pridobiti celoten URL trenutne strani. Ustvarite datoteko PHP z naslednjim skriptom.

Če pogoj je v prejšnjem primeru uporabljen za ugotovitev, kateri protokol je uporabljen v URL -ju trenutne strani. Ista naloga se izvede s pomočjo trojnega operaterja v tem skriptu. odšel) funkcija se uporablja za preverjanje, ali je $ _SERVER ['HTTPS'] niz ali ne in ali je vrednost $ _SERVER ['HTTPS'] naprej, potem bo trojni operater vrnil HTTPS, sicer pa HTTP. Drugi deli URL -ja se pridobijo in natisnejo kot prejšnji primer.


// Ugotovite protokol trenutnega URL -ja
$ protokol = ( odšel ($ _SERVER[»HTTPS«]) && $ _SERVER[»HTTPS«]
== 'vklopljeno'?'https' : 'http');
// Preberite ime domene trenutne strani
$ domena = $ _SERVER['HTTP_HOST'];
// Preberite zahtevani vir
$ vir = $ _SERVER['REQUEST_URI'];
// Združite vse dele, da dobite celoten naslov URL
$ url = $ protokol.': //'.$ domena.$ vir;
// Natisnite naslov URL trenutne strani
vrgel ven '

Naslov URL trenutne strani je:

'
. $ url;
?>

Izhod:

Po zagonu skripta s strežnika se prikaže naslednji izhod. Vrednost $ _SERVER ['HTTPS'] ni naprej za lokalni strežnik. Tako izhod prikazuje protokol HTTP za trenutni URL.

Primer 3: Prikažite URL trenutne strani glede na številko vrat

V prejšnjih dveh primerih se vrednost $ _SERVER ['HTTPS'] uporablja za ugotavljanje protokola trenutnega URL -ja strani in z URL -jem ni uporabljen niz poizvedb. Naslednji primer prikazuje, kako lahko spremenljivko $ _SERVER [‘SERVER_PORT’] uporabite za odkrivanje protokola in pridobivanje celotnega naslova URL z nizom poizvedbe. Ustvarite datoteko PHP z naslednjim skriptom.

Tu se za ugotavljanje protokola uporablja več logičnih pogojev in trojni operater. Če je vrednost $ _SERVER ['HTTPS'] prazna ali nastavljena na izključeno, nato bo preveril vrednost $ _SERVER ['SERVER_PORT'], da bi ugotovil protokol trenutnega URL -ja. Spremenljivka $ _SERVER [‘QUERY_STRING’] se uporablja za pridobivanje vrednosti niza poizvedbe iz URL -ja.


// Ugotovite protokol trenutnega URL -ja
$ protokol = ((! prazno ($ _SERVER[»HTTPS«]) && $ _SERVER[»HTTPS«]
! = 'izključeno') || $ _SERVER['SERVER_PORT'] == 443)?'https: //' : 'http: //';
// Preberite ime domene trenutne strani
$ domena = $ _SERVER['HTTP_HOST'];
// Preberite zahtevani vir
$ vir = $ _SERVER['REQUEST_URI'];
// Preberite vrednost niza poizvedbe
$ poizvedba = $ _SERVER[»QUERY_STRING«];
// Združite vse dele, da dobite celoten naslov URL
$ url = $ protokol.$ domena.$ vir;
// Natisnite naslov URL trenutne strani
vrgel ven '

Celoten naslov URL trenutne strani je:

'
. $ url;
// Natisnite del niza poizvedbe
vrgel ven '

Niz poizvedbe je:

'
. $ poizvedba;
?>

Izhod:

Naslednji izhod bo prikazan po izvedbi zgornjega skripta s strežnika brez niza poizvedbe. V URL -ju ni poizvedbenega niza. Tako izhod prikazuje prazen niz poizvedbe.

Po izvedbi zgornjega skripta iz strežnika z nizom poizvedbe se prikaže naslednji izhod. Naslednji izhod prikazuje naslov URL z nizom poizvedbe in nizom poizvedbe ločeno.

Zaključek

V tej vadnici so z različnimi primeri prikazani različni načini pridobivanja celotnega URL -ja trenutne strani. V tej vadnici je prikazan tudi način ločevanja URL -ja in poizvedbenega niza. Upajmo, da bo ta vadnica bralcem pomagala poznati način branja celotnega URL -ja trenutne strani s skriptom PHP.