Nödvändiga variabler
Följande superglobala variabler krävs för att ta reda på URL-adressen till den aktuella sidan.
Superglobala variabler | Syften |
---|---|
$ _SERVER ['HTTPS'] | Den återvänder på om HTTPS-protokoll används i webbadressen till den aktuella sidan. |
$ _SERVER ['HTTP_HOST'] | Den returnerar namnet på servern på den aktuella sidan. |
$ _SERVER ['REQUEST_URI'] | Det returnerar det begärda resursnamnet. |
$ _SERVER ['SERVER_PORT'] | Den returnerar serverns portnummer. |
$ _SERVER ['QUERY_STRING'] | Den returnerar frågesträngvärdet om det finns i URL-adressen till den aktuella sidan. |
Exempel 1: Visa URL: n för den aktuella sidan med ett villkorligt uttalande
Följande exempel visar hur villkorligt uttalande kan användas för att få protokollet att användas i webbadressen till den aktuella sidan. Skapa en PHP-fil med följande skript.
Värdet på $ _SERVER ['HTTP_HOST'] används för att få domännamnet för den aktuella URL: n. Värdet på $ _SERVER ['REQUEST_URI'] används för att få namnet på den begärda resursen. isset () funktionen används för att kontrollera om $ _SERVER ['HTTPS'] är en uppsättning eller inte, och om den är inställd, kontrollera sedan värdet på $ _SERVER ['HTTPS'] om den är på eller inte. Därefter kombineras värdena för dessa tre variabler med '//:' för att hämta hela URL: en för den aktuella sidan.
// Läs domännamnet på den aktuella sidan$ domain = $ _SERVER ['HTTP_HOST'];
// Läs den begärda resursen
$ resource = $ _SERVER ['REQUEST_URI'];
// Ta reda på protokollet för den aktuella webbadressen
if (isset ($ _ SERVER ['HTTPS']) && $ _SERVER ['HTTPS'] === 'on')
$ protocol = "https";
annan
$ protocol = "http";
// Kombinera alla delar för att få hela URL-adressen
$ url = $ protokoll.": //".$ domän.$ resurs;
// Skriv ut URL-adressen till den aktuella sidan
eko "
URL: n för den aktuella
sidan är:
". $ url;?> Produktion:
Följande utdata visas efter att man kört skriptet från servern. Värdet på $ _SERVER ['HTTPS'] är inte på för den lokala servern. Så resultatet visar http protokoll för aktuell URL.
Exempel 2: Visa URL: n för den aktuella sidan med den ternära operatören
Följande exempel visar hur man hämtar hela webbadressen till den aktuella sidan med den ternära operatören. Skapa en PHP-fil med följande skript.
Om villkoret används i föregående exempel för att ta reda på vilket protokoll som används i webbadressen för den aktuella sidan. Samma uppgift görs med den ternära operatören i detta skript. isset () funktionen används för att kontrollera om $ _SERVER ['HTTPS'] är en uppsättning eller inte, och om värdet av $ _SERVER ['HTTPS'] är på, då returnerar den ternära operatören HTTPS, annars returnerar den HTTP. De andra delarna av URL: en hämtas och skrivs ut som i föregående exempel.
// Ta reda på protokollet för den aktuella webbadressen$ protocol = (isset ($ _ SERVER ['HTTPS']) && $ _SERVER ['HTTPS']
== 'på' ? "https": "http");
// Läs domännamnet på den aktuella sidan
$ domain = $ _SERVER ['HTTP_HOST'];
// Läs den begärda resursen
$ resource = $ _SERVER ['REQUEST_URI'];
// Kombinera alla delar för att få hela URL-adressen
$ url = $ protokoll.": //".$ domän.$ resurs;
// Skriv ut URL-adressen till den aktuella sidan
eko "
URL-adressen till den aktuella sidan är:
". $ url;?>
Produktion:
Följande utdata visas efter att man kört skriptet från servern. Värdet på $ _SERVER ['HTTPS'] är inte på för den lokala servern. Så resultatet visar HTTP-protokollet för den aktuella URL: n.
Exempel 3: Visa URL: en för den aktuella sidan baserat på portnummer
I de två föregående exemplen används värdet på $ _SERVER ['HTTPS'] för att ta reda på protokollet för den aktuella URL: en på sidan, och ingen frågesträng används med URL: en. Följande exempel visar hur variabeln $ _SERVER ['SERVER_PORT'] kan användas för att ta reda på protokollet och hämta hela URL-adressen med frågesträngen. Skapa en PHP-fil med följande skript.
Här används flera logiska förhållanden och ternär operatör för att ta reda på protokollet. Om värdet på $ _SERVER ['HTTPS'] är tomt eller satt till av, då kommer den att kontrollera värdet på $ _SERVER ['SERVER_PORT'] för att ta reda på protokollet för den aktuella URL: n. $ _SERVER ['QUERY_STRING'] variabel används för att hämta frågesträngsvärdet från webbadressen.
// Ta reda på protokollet för den aktuella webbadressen$ protokoll = ((!tom ($ _ SERVER ['HTTPS']) && $ _SERVER ['HTTPS']
!= 'av') || $ _SERVER ['SERVER_PORT'] == 443) ? "https: //": "http: //";
// Läs domännamnet på den aktuella sidan
$ domain = $ _SERVER ['HTTP_HOST'];
// Läs den begärda resursen
$ resource = $ _SERVER ['REQUEST_URI'];
// Läs frågesträngens värde
$ fråga = $ _SERVER ['QUERY_STRING'];
// Kombinera alla delar för att få hela URL-adressen
$ url = $ protokoll.$ domän.$ resurs;
// Skriv ut URL-adressen till den aktuella sidan
eko "
Hela URL-adressen för den aktuella sidan är:
". $ url;// Skriv ut frågesträngdelen
eko "
Frågesträngen är:
". $ fråga;?>
Produktion:
Följande utdata visas efter att ovanstående skript har körts från servern utan någon frågesträng. Ingen frågesträng tillhandahålls i webbadressen. Så resultatet visar den tomma frågesträngen.
Följande utdata visas efter att ovanstående skript har körts från servern med frågesträngen. Följande utdata visar URL-adressen med frågesträngen och frågesträngen separat.
Slutsats
Olika sätt att hämta hela URL: en för den aktuella sidan visas i denna handledning med hjälp av olika exempel. Sättet att separera webbadressen och frågesträngen visas också i denna handledning. Förhoppningsvis kommer den här handledningen att hjälpa läsarna att veta hur man läser hela webbadressen för den aktuella sidan med hjälp av PHP-skriptet.