Hent hele URL -en i PHP

Hent hele URL -en i PHP
To typer globale variabler kan brukes i PHP: Superglobal-variabelen og den brukerdefinerte variabelen. $ _Server er en superglobal array -variabel som brukes til å hente hele banen til den nåværende siden. Protokollen (HTTP eller HTTPS) av URLen er også påkrevd for å få full url på siden. Hvis $ _Server ['https'] Returnerer 'på', da vil HTTPS bli brukt med URL -adressen, ellers, Http vil bli brukt. Hvordan hele URL -adressen til den gjeldende siden kan hentes ved hjelp av $ _Server Array er blitt forklart i denne opplæringen.

Nødvendige variabler

Følgende superglobale variabler er påkrevd for å finne ut URL -adressen til den gjeldende siden.

Superglobale variabler Formål
$ _Server ['https'] Det kommer tilbake Hvis HTTPS -protokollen brukes i URL -en på den gjeldende siden.
$ _Server ['http_host'] Den returnerer navnet på serveren på den gjeldende siden.
$ _Server ['request_uri'] Det returnerer det forespurte ressursnavnet.
$ _Server ['server_port'] Den returnerer portnummeret til serveren.
$ _Server ['query_string'] Den returnerer spørringsstrengverdien hvis den eksisterer i URL -adressen til den gjeldende siden.

Eksempel 1: Vis URL -en på den gjeldende siden ved hjelp av en betinget uttalelse

Følgende eksempel viser hvordan den betingede uttalelsen kan brukes til å få protokollen som brukes i URL -en på den gjeldende siden. Opprett en PHP -fil med følgende skript.

Verdien av $ _server ['http_host'] brukes til å få domenenavnet til gjeldende URL. Verdien av $ _server ['Request_uri'] brukes til å få navnet på den forespurte ressursen. Isset () Funksjon brukes til å sjekke om $ _server ['https'] er et sett eller ikke, og hvis settet, så sjekk verdien av $ _server ['https'] er det er det eller ikke. Deretter kombineres verdiene til disse tre variablene med '//:' For å hente hele URL -en på den gjeldende siden.

// Les domenenavnet på den nåværende siden
$ domain = $ _server ['http_host'];
// Les den forespurte ressursen
$ ressurs = $ _server ['request_uri'];
// Finn ut protokollen til gjeldende URL
if (isset ($ _ server ['https']) && $ _server ['https'] === 'på')
$ protocol = "https";
ellers
$ protocol = "http";
// Kombiner alle delene for å få full URL -adresse
$ url = $ protokoll.": //".$ domene.$ ressurs;
// Skriv ut URL -adressen til den gjeldende siden
ekko "

URL -adressen til strømmen
Side er:

"". $ url;?>

Produksjon:

Følgende utgang vises etter å ha kjørt skriptet fra serveren. Verdien av $ _server ['https'] er ikke for den lokale serveren. Så utgangen viser http protokoll for gjeldende URL.

Eksempel 2: Vis URL -en på den gjeldende siden ved hjelp av ternær operatør

Følgende eksempel viser måten å få hele nettadressen til den gjeldende siden ved hjelp av den ternære operatøren. Opprett en PHP -fil med følgende skript.

Hvis Tilstanden brukes i forrige eksempel for å finne ut hvilken protokoll som brukes i nettadressen til den gjeldende siden. Den samme oppgaven gjøres ved hjelp av den ternære operatøren i dette skriptet. Isset () funksjon brukes til å sjekke om $ _server ['https'] er et sett eller ikke, og om verdien av $ _server ['https'] er på, Da vil den ternære operatøren returnere HTTPS, ellers vil den returnere HTTP. De andre delene av nettadressen blir hentet og trykt som forrige eksempel.

// Finn ut protokollen til gjeldende URL
$ protocol = (isset ($ _ server ['https']) && $ _server ['https']
== 'på' ? "https": "http");
// Les domenenavnet på den nåværende siden
$ domain = $ _server ['http_host'];
// Les den forespurte ressursen
$ ressurs = $ _server ['request_uri'];
// Kombiner alle delene for å få full URL -adresse
$ url = $ protokoll.": //".$ domene.$ ressurs;
// Skriv ut URL -adressen til den gjeldende siden
ekko "

URL -adressen til den gjeldende siden er:

"". $ url;
?>

Produksjon:

Følgende utgang vises etter å ha kjørt skriptet fra serveren. Verdien av $ _server ['https'] er ikke for den lokale serveren. Så utdataene viser HTTP -protokollen for gjeldende URL.

Eksempel 3: Vis nettadressen til den gjeldende siden basert på portnummer

I de to foregående eksemplene brukes verdien av $ _server ['https'] for å finne ut protokollen til den gjeldende URL -en på siden, og ingen spørringsstreng brukes med URL. Følgende eksempel viser hvordan $ _server ['server_port'] variabel kan brukes til å finne ut protokollen og hente hele URL -adressen med spørringsstrengen. Opprett en PHP -fil med følgende skript.

Her brukes flere logiske forhold og ternær operatør for å finne ut protokollen. Hvis verdien av $ _server ['https'] er tom eller satt til av, da vil den sjekke verdien på $ _server ['server_port'] for å finne ut protokollen til den gjeldende URL. $ _Server ['query_string'] variabel brukes til å hente spørringsverdien fra URL.

// Finn ut protokollen til gjeldende URL
$ protokoll = ((!tom ($ _ server ['https']) && $ _server ['https']
!= 'av') || $ _Server ['server_port'] == 443) ? "https: //": "http: //";
// Les domenenavnet på den nåværende siden
$ domain = $ _server ['http_host'];
// Les den forespurte ressursen
$ ressurs = $ _server ['request_uri'];
// Les spørringsstrengverdien
$ spørring = $ _server ['query_string'];
// Kombiner alle delene for å få full URL -adresse
$ url = $ protokoll.$ domene.$ ressurs;
// Skriv ut URL -adressen til den gjeldende siden
ekko "

Den fullstendige URL -adressen til den gjeldende siden er:

"". $ url;
// Skriv ut spørringsstrengdelen
ekko "

Spørringsstrengen er:

"". $ spørring;
?>

Produksjon:

Følgende utgang vises etter å ha utført skriptet ovenfor fra serveren uten noen spørringsstreng. Ingen spørringsstreng er gitt i nettadressen. Så utgangen viser den tomme spørringsstrengen.

Følgende utgang vises etter å ha utført skriptet ovenfor fra serveren med spørringsstrengen. Følgende utgang viser URL -adressen med spørringsstrengen og spørringsstrengen hver for seg.

Konklusjon

Ulike måter å hente hele nettadressen til den gjeldende siden vises i denne opplæringen ved å bruke forskjellige eksempler på. Måten å skille URL og spørringsstrengen vises også i denne opplæringen. Forhåpentligvis vil denne opplæringen hjelpe leserne å kjenne måten å lese hele URL -en på den nåværende siden ved hjelp av PHP -skriptet.