Nødvendige variabler
Følgende superglobale variabler kreves for å finne ut URL-adressen til den gjeldende siden.
Superglobale variabler | Formål |
---|---|
$ _SERVER ['HTTPS'] | Det kommer tilbake på hvis HTTPS-protokoll brukes i URL-en til den aktuelle siden. |
$ _SERVER ['HTTP_HOST'] | Den returnerer navnet på serveren til den gjeldende siden. |
$ _SERVER ['REQUEST_URI'] | Den returnerer det forespurte ressursnavnet. |
$ _SERVER ['SERVER_PORT'] | Den returnerer portnummeret til serveren. |
$ _SERVER ['QUERY_STRING'] | Den returnerer spørringsstrengverdien hvis den finnes i URL-adressen til den gjeldende siden. |
Eksempel 1: Vis nettadressen til den gjeldende siden ved hjelp av en betinget uttalelse
Følgende eksempel viser hvordan betingelsesuttalelsen kan brukes til å få protokollen brukt i URL-en til den aktuelle siden. Opprett en PHP-fil med følgende skript.
Verdien av $ _SERVER ['HTTP_HOST'] brukes til å få domenenavnet til den nåværende URL-en. Verdien av $ _SERVER ['REQUEST_URI'] brukes til å hente navnet på den forespurte ressursen. isset () funksjonen brukes til å sjekke om $ _SERVER ['HTTPS'] er et sett eller ikke, og hvis det er angitt, så sjekk verdien av $ _SERVER ['HTTPS'] er det det er på eller ikke. Deretter kombineres verdiene til disse tre variablene med '//:' for å hente hele URL-adressen til den nåværende siden.
// Les domenenavnet til den gjeldende siden$ domene = $ _SERVER ['HTTP_HOST'];
// Les ønsket ressurs
$ resource = $ _SERVER ['REQUEST_URI'];
// Finn ut protokollen til gjeldende url
if (isset ($ _ SERVER ['HTTPS']) && $ _SERVER ['HTTPS'] === 'on')
$ 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 gjeldende
siden er:
". $ url;?> Produksjon:
Følgende utdata vises når du har kjørt skriptet fra serveren. Verdien av $ _SERVER ['HTTPS'] er ikke på for den lokale serveren. Så utgangen viser http protokoll for gjeldende URL.
Eksempel 2: Vis URL-en til den gjeldende siden ved hjelp av ternary operator
Følgende eksempel viser hvordan du får full URL til den nåværende siden ved hjelp av den ternære operatøren. Opprett en PHP-fil med følgende skript.
Hvis tilstanden ble brukt i forrige eksempel for å finne ut hvilken protokoll som brukes i URL-en til den aktuelle siden. Den samme oppgaven gjøres ved hjelp av den ternære operatøren i dette skriptet. isset () funksjonen brukes til å sjekke om $ _SERVER ['HTTPS'] er et sett eller ikke, og om verdien av $ _SERVER ['HTTPS'] er på, så vil den ternære operatøren returnere HTTPS, ellers vil den returnere HTTP. De andre delene av URL-en hentes og skrives ut som i forrige eksempel.
// Finn ut protokollen til gjeldende url$ protocol = (isset ($ _ SERVER ['HTTPS']) && $ _SERVER ['HTTPS']
== 'på' ? "https": "http");
// Les domenenavnet til den gjeldende siden
$ domene = $ _SERVER ['HTTP_HOST'];
// Les ønsket ressurs
$ resource = $ _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 utdata vises når du har kjørt skriptet fra serveren. Verdien av $ _SERVER ['HTTPS'] er ikke på for den lokale serveren. Så utgangen 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 til siden, og ingen spørringsstreng brukes med URL-en. Følgende eksempel viser hvordan variabelen $ _SERVER ['SERVER_PORT'] 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, så vil den sjekke verdien av $ _SERVER ['SERVER_PORT'] for å finne ut protokollen til gjeldende URL. $ _SERVER ['QUERY_STRING'] -variabel brukes til å hente spørringsstrengverdien fra URL-en.
// Finn ut protokollen til gjeldende url$ protokoll = ((!tom ($ _ SERVER ['HTTPS']) && $ _SERVER ['HTTPS']
!= 'av') || $ _SERVER ['SERVER_PORT'] == 443) ? "https: //": "http: //";
// Les domenenavnet på den gjeldende siden
$ domene = $ _SERVER ['HTTP_HOST'];
// Les ønsket ressurs
$ resource = $ _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 "
Hele URL-adressen til den gjeldende siden er:
". $ url;// Skriv ut spørringsstrengdelen
ekko "
Spørringsstrengen er:
". $ spørring;?>
Produksjon:
Følgende utdata vises etter å ha utført skriptet ovenfor fra serveren uten noen spørringsstreng. Ingen spørringsstreng er gitt i URL-en. Så utgangen viser den tomme spørringsstrengen.
Følgende utdata vises etter å ha utført skriptet ovenfor fra serveren med spørringsstrengen. Følgende utgang viser URL-adressen med spørringsstrengen og spørringsstrengen separat.
Konklusjon
Ulike måter å hente hele URL-en til den aktuelle siden vises i denne veiledningen ved hjelp av forskjellige eksempler. Måten å skille URL og spørringsstreng på vises også i denne veiledningen. Forhåpentligvis vil denne opplæringen hjelpe leserne å vite hvordan de kan lese hele URL-en til den aktuelle siden ved hjelp av PHP-skriptet.