Potrebne spremenljivke
Za iskanje naslova URL trenutne strani so potrebne naslednje superglobalne spremenljivke.
Superglobalne spremenljivke | Namen |
---|---|
$ _SERVER ['HTTPS'] | Vrne se na č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-ja trenutne strani. |
Primer 1: Prikažite URL trenutne strani z uporabo pogojnega stavka
Naslednji primer prikazuje, kako lahko pogojni stavek uporabite 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 uporablja za pridobitev imena zahtevanega vira. isset () funkcija se uporablja za preverjanje, ali je $ _SERVER ['HTTPS'] nabor ali ne, in če je nastavljen, preverite vrednost $ _SERVER ['HTTPS'] ali je na ali ne. Nato se vrednosti teh treh spremenljivk kombinirajo z '//:', da se pridobi celotni URL trenutne strani.
// Preberite ime domene trenutne strani$ domena = $ _SERVER ['HTTP_HOST'];
// Preberite zahtevani vir
$ resource = $ _SERVER ['REQUEST_URI'];
// Poiščite protokol trenutnega URL-ja
if (isset ($ _ SERVER ['HTTPS']) && $ _SERVER ['HTTPS'] === 'on')
$ protokol = "https";
drugače
$ protokol = "http";
// Vse dele združimo, da dobimo celoten naslov URL
$ url = $ protokol.": //".$ domena.$ vir;
// Natisni naslov URL trenutne strani
odmev "
Naslov trenutnega URL-ja
stran je:
". $ url;?> Izhod:
Naslednji izhod se prikaže po zagonu skripta s strežnika. Vrednost $ _SERVER ['HTTPS'] ni na za lokalni strežnik. Torej izhod prikazuje http protokol za trenutni URL.
Primer 2: Z uporabo ternarnega operatorja prikažite URL trenutne strani
Naslednji primer prikazuje način pridobivanja celotnega URL-ja trenutne strani s pomočjo ternarnega operaterja. Ustvarite datoteko PHP z naslednjim skriptom.
Če pogoj je uporabljen v prejšnjem primeru, da ugotovimo, kateri protokol je uporabljen v URL-ju trenutne strani. Ista naloga je narejena s ternarnim operatorjem v tem skriptu. isset () funkcija se uporablja za preverjanje, ali je $ _SERVER ['HTTPS'] nabor ali ne, in ali je vrednost $ _SERVER ['HTTPS'] na, nato bo ternarni operater vrnil HTTPS, sicer pa HTTP. Drugi deli URL-ja se pridobijo in natisnejo kot prejšnji primer.
// Poiščite protokol trenutnega URL-ja$ protocol = (isset ($ _ SERVER ['HTTPS']) && $ _SERVER ['HTTPS']
== 'vklopljeno' ? "https": "http");
// Preberite ime domene trenutne strani
$ domena = $ _SERVER ['HTTP_HOST'];
// Preberite zahtevani vir
$ resource = $ _SERVER ['REQUEST_URI'];
// Vse dele združimo, da dobimo celoten naslov URL
$ url = $ protokol.": //".$ domena.$ vir;
// Natisni naslov URL trenutne strani
odmev "
Naslov trenutne strani je:
". $ url;?>
Izhod:
Naslednji izhod se prikaže po zagonu skripta s strežnika. Vrednost $ _SERVER ['HTTPS'] ni na za lokalni strežnik. Torej izhod prikazuje protokol HTTP za trenutni URL.
Primer 3: Prikažite URL trenutne strani glede na številko vrat
V prejšnjih dveh primerih je vrednost $ _SERVER ['HTTPS'] uporabljena za iskanje protokola trenutnega URL-ja strani, z URL-jem pa ni uporabljen niz poizvedbe. Naslednji primer prikazuje, kako lahko spremenljivko $ _SERVER ['SERVER_PORT'] uporabite za iskanje 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 ternarni operator. Če je vrednost $ _SERVER ['HTTPS'] prazna ali nastavljena na izključeno, nato bo preveril vrednost $ _SERVER ['SERVER_PORT'], da bo ugotovil protokol trenutnega URL-ja. Spremenljivka $ _SERVER ['QUERY_STRING'] se uporablja za pridobivanje vrednosti niza poizvedbe iz URL-ja.
// Poiščite 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
$ resource = $ _SERVER ['REQUEST_URI'];
// Preberite vrednost poizvedbe
$ poizvedba = $ _SERVER ['QUERY_STRING'];
// Vse dele združimo, da dobimo celoten naslov URL
$ url = $ protokol.$ domena.$ vir;
// Natisni naslov URL trenutne strani
odmev "
Polni URL trenutne strani je:
". $ url;// Natisni del niza poizvedbe
odmev "
Niz poizvedbe je:
". $ poizvedba;?>
Izhod:
Naslednji izhod se bo prikazal po izvedbi zgornjega skripta s strežnika brez poizvedbenega niza. V URL-ju ni naveden poizvedbeni niz. Torej izhod prikazuje prazen niz poizvedbe.
Naslednji izhod se bo prikazal po izvedbi zgornjega skripta s strežnika z nizom poizvedbe. 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 niza poizvedbe. Upamo, da bo ta vadnica bralcem pomagala poznati način branja celotnega URL-ja trenutne strani s pomočjo skripta PHP.