Nødvendige variabler
Følgende superglobale variabler er nødvendige for at finde ud af URL-adressen på den aktuelle side.
Superglobale variabler | Formål |
---|---|
$ _SERVER ['HTTPS'] | Det vender tilbage på hvis HTTPS-protokol bruges i URL'en til den aktuelle side. |
$ _SERVER ['HTTP_HOST'] | Det returnerer navnet på serveren på den aktuelle side. |
$ _SERVER ['REQUEST_URI'] | Det returnerer det ønskede ressourcenavn. |
$ _SERVER ['SERVER_PORT'] | Det returnerer serverens portnummer. |
$ _SERVER ['QUERY_STRING'] | Den returnerer forespørgselsstrengens værdi, hvis den findes i URL-adressen på den aktuelle side. |
Eksempel 1: Vis URL'en til den aktuelle side ved hjælp af en betinget erklæring
Følgende eksempel viser, hvordan den betingede erklæring kan bruges til at få protokollen brugt i URL'en til den aktuelle side. Opret en PHP-fil med følgende script.
Værdien af $ _SERVER ['HTTP_HOST'] bruges til at hente domænenavnet på den aktuelle URL. Værdien af $ _SERVER ['REQUEST_URI'] bruges til at hente navnet på den anmodede ressource. isset () funktionen bruges til at kontrollere, om $ _SERVER ['HTTPS'] er et sæt eller ej, og hvis det er indstillet, skal du kontrollere værdien af $ _SERVER ['HTTPS'], hvis det er på eller ikke. Derefter kombineres værdierne for disse tre variabler med '//:' for at hente den fulde URL på den aktuelle side.
// Læs domænenavnet på den aktuelle side$ domæne = $ _SERVER ['HTTP_HOST'];
// Læs den ønskede ressource
$ resource = $ _SERVER ['REQUEST_URI'];
// Find ud af protokollen for den aktuelle url
if (isset ($ _ SERVER ['HTTPS']) && $ _SERVER ['HTTPS'] === 'on')
$ protocol = "https";
andet
$ protocol = "http";
// Kombiner alle dele for at få den fulde URL-adresse
$ url = $ protokol.": //".$ domæne.$ ressource;
// Udskriv URL-adressen på den aktuelle side
ekko "
URL-adressen til den aktuelle
siden er:
". $ url;?> Produktion:
Følgende output vises efter kørsel af scriptet fra serveren. Værdien af $ _SERVER ['HTTPS'] er ikke på til den lokale server. Så output viser http protokol til den aktuelle URL.
Eksempel 2: Vis URL'en til den aktuelle side ved hjælp af ternær operator
Følgende eksempel viser, hvordan man får den fulde URL til den aktuelle side ved hjælp af den ternære operator. Opret en PHP-fil med følgende script.
Hvis betingelsen blev brugt i det foregående eksempel for at finde ud af, hvilken protokol der bruges i URL'en til den aktuelle side. Den samme opgave udføres ved hjælp af den ternære operator i dette script. isset () funktion bruges til at kontrollere, om $ _SERVER ['HTTPS'] er et sæt eller ej, og om værdien af $ _SERVER ['HTTPS'] er på, så returnerer den ternære operatør HTTPS, ellers returnerer den HTTP. De andre dele af URL'en hentes og udskrives som det foregående eksempel.
// Find ud af protokollen for den aktuelle url$ protocol = (isset ($ _ SERVER ['HTTPS']) && $ _SERVER ['HTTPS']
== 'til' ? "https": "http");
// Læs domænenavnet på den aktuelle side
$ domæne = $ _SERVER ['HTTP_HOST'];
// Læs den ønskede ressource
$ resource = $ _SERVER ['REQUEST_URI'];
// Kombiner alle dele for at få den fulde URL-adresse
$ url = $ protokol.": //".$ domæne.$ ressource;
// Udskriv URL-adressen på den aktuelle side
ekko "
URL-adressen til den aktuelle side er:
". $ url;?>
Produktion:
Følgende output vises efter kørsel af scriptet fra serveren. Værdien af $ _SERVER ['HTTPS'] er ikke på til den lokale server. Så output viser HTTP-protokollen for den aktuelle URL.
Eksempel 3: Vis URL'en til den aktuelle side baseret på portnummer
I de to foregående eksempler bruges værdien af $ _SERVER ['HTTPS'] til at finde ud af protokollen for den aktuelle URL på siden, og der bruges ingen forespørgselsstreng med URL'en. Følgende eksempel viser, hvordan variablen $ _SERVER ['SERVER_PORT'] kan bruges til at finde ud af protokollen og hente den fulde URL-adresse med forespørgselsstrengen. Opret en PHP-fil med følgende script.
Her bruges flere logiske forhold og ternær operatør til at finde ud af protokollen. Hvis værdien af $ _SERVER ['HTTPS'] er tom eller indstillet til af, så kontrollerer den værdien af $ _SERVER ['SERVER_PORT'] for at finde ud af protokollen for den aktuelle URL. $ _SERVER ['QUERY_STRING'] variabel bruges til at hente forespørgselsstrengens værdi fra URL'en.
// Find ud af protokollen for den aktuelle url$ protokol = ((!tom ($ _ SERVER ['HTTPS']) && $ _SERVER ['HTTPS']
!= 'off') || $ _SERVER ['SERVER_PORT'] == 443) ? "https: //": "http: //";
// Læs domænenavnet på den aktuelle side
$ domæne = $ _SERVER ['HTTP_HOST'];
// Læs den ønskede ressource
$ resource = $ _SERVER ['REQUEST_URI'];
// Læs forespørgselsstrengens værdi
$ forespørgsel = $ _SERVER ['QUERY_STRING'];
// Kombiner alle dele for at få den fulde URL-adresse
$ url = $ protokol.$ domæne.$ ressource;
// Udskriv URL-adressen på den aktuelle side
ekko "
Den fulde URL-adresse på den aktuelle side er:
". $ url;// Udskriv forespørgselsstrengdelen
ekko "
Forespørgselsstrengen er:
". $ forespørgsel;?>
Produktion:
Følgende output vises efter udførelse af ovenstående script fra serveren uden nogen forespørgselsstreng. Ingen forespørgselsstreng er angivet i URL'en. Så output viser den tomme forespørgselsstreng.
Følgende output vises efter udførelse af ovenstående script fra serveren med forespørgselsstrengen. Følgende output viser URL-adressen med forespørgselsstrengen og forespørgselsstrengen separat.
Konklusion
Forskellige måder at hente den fulde URL på den aktuelle side vises i denne vejledning ved hjælp af forskellige eksempler. Måden at adskille URL'en og forespørgselsstrengen vises også i denne vejledning. Forhåbentlig hjælper denne vejledning læserne med at kende måden at læse den fulde URL på den aktuelle side ved hjælp af PHP-scriptet.