Noodzakelijke variabelen
De volgende superglobale variabelen zijn vereist om het URL-adres van de huidige pagina te achterhalen:.
Superglobale variabelen | doeleinden |
---|---|
$_SERVER['HTTPS'] | Het keert terug Aan als HTTPS-protocol wordt gebruikt in de URL van de huidige pagina. |
$_SERVER['HTTP_HOST'] | Het retourneert de naam van de server van de huidige pagina. |
$_SERVER['REQUEST_URI'] | Het retourneert de gevraagde resourcenaam. |
$_SERVER['SERVER_PORT'] | Het retourneert het poortnummer van de server. |
$_SERVER['QUERY_STRING'] | Het retourneert de waarde van de queryreeks als deze bestaat in het URL-adres van de huidige pagina. |
Voorbeeld 1: Geef de URL van de huidige pagina weer met een voorwaardelijke instructie
Het volgende voorbeeld laat zien hoe de voorwaardelijke instructie kan worden gebruikt om het protocol te krijgen dat wordt gebruikt in de URL van de huidige pagina. Maak een PHP-bestand met het volgende script:.
De waarde van $_SERVER['HTTP_HOST'] wordt gebruikt om de domeinnaam van de huidige URL te krijgen. De waarde van $_SERVER['REQUEST_URI'] wordt gebruikt om de naam van de gevraagde resource te krijgen. isset() functie wordt gebruikt om te controleren of de $_SERVER['HTTPS'] een set is of niet, en indien ingesteld, controleer dan de waarde van $_SERVER['HTTPS'] is het Aan of niet. Vervolgens worden de waarden van deze drie variabelen gecombineerd met '//:' om de volledige URL van de huidige pagina op te halen.
// Lees de domeinnaam van de huidige pagina$domein = $_SERVER['HTTP_HOST'];
//Lees de gevraagde bron
$resource = $_SERVER['REQUEST_URI'];
// Ontdek het protocol van de huidige url
if(isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'aan')
$protocol = "https";
anders
$protocol = "http";
// Combineer alle onderdelen om het volledige URL-adres te krijgen
$url = $protocol."://".$domein.$bron;
// Druk het URL-adres van de huidige pagina af
echo "
Het URL-adres van de huidige
pagina is:
". $url;?> Uitgang:
De volgende uitvoer zal verschijnen nadat het script vanaf de server is uitgevoerd:. De waarde van $_SERVER['HTTPS'] is niet Aan voor de lokale server. Dus de uitvoer toont de http protocol voor de huidige URL.
Voorbeeld 2: Geef de URL van de huidige pagina weer met behulp van de ternaire operator
Het volgende voorbeeld toont de manier om de volledige URL van de huidige pagina te krijgen met behulp van de ternaire operator. Maak een PHP-bestand met het volgende script:.
Als de voorwaarde wordt in het vorige voorbeeld gebruikt om erachter te komen welk protocol wordt gebruikt in de URL van de huidige pagina. Dezelfde taak wordt gedaan met behulp van de ternaire operator in dit script. isset() functie wordt gebruikt om te controleren of de $_SERVER['HTTPS'] een set is of niet, en of de waarde van $_SERVER['HTTPS'] is Aan, dan retourneert de ternaire operator HTTPS, anders retourneert het HTTP. De andere delen van de URL worden opgehaald en afgedrukt zoals in het vorige voorbeeld.
// Ontdek het protocol van de huidige url$protocol = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS']
== 'aan' ? "https" : "http");
// Lees de domeinnaam van de huidige pagina
$domain = $_SERVER['HTTP_HOST'];
//Lees de gevraagde bron
$resource = $_SERVER['REQUEST_URI'];
// Combineer alle onderdelen om het volledige URL-adres te krijgen
$url = $protocol."://".$domein.$bron;
// Druk het URL-adres van de huidige pagina af
echo "
Het URL-adres van de huidige pagina is:
". $url;?>
Uitgang:
De volgende uitvoer zal verschijnen nadat het script vanaf de server is uitgevoerd:. De waarde van $_SERVER['HTTPS'] is niet Aan voor de lokale server. Dus de uitvoer toont het HTTP-protocol voor de huidige URL.
Voorbeeld 3: Geef de URL van de huidige pagina weer op basis van poortnummer
In de vorige twee voorbeelden wordt de waarde van $_SERVER['HTTPS'] gebruikt om het protocol van de huidige URL van de pagina te achterhalen, en er wordt geen querystring gebruikt met de URL. Het volgende voorbeeld laat zien hoe de variabele $_SERVER['SERVER_PORT'] kan worden gebruikt om het protocol te achterhalen en het volledige URL-adres op te halen met de queryreeks. Maak een PHP-bestand met het volgende script:.
Hier worden meerdere logische voorwaarden en ternaire operator gebruikt om het protocol te achterhalen. Als de waarde van $_SERVER['HTTPS'] leeg is of is ingesteld op uit, dan zal het de waarde van $_SERVER['SERVER_PORT'] controleren om het protocol van de huidige URL te achterhalen. $_SERVER['QUERY_STRING'] variabele wordt gebruikt om de waarde van de queryreeks uit de URL op te halen.
// Ontdek het protocol van de huidige url$protocol = ((!leeg($_SERVER['HTTPS']) && $_SERVER['HTTPS']
!= 'uit') || $_SERVER['SERVER_PORT'] == 443) ? "https://" : "http://";
// Lees de domeinnaam van de huidige pagina
$domain = $_SERVER['HTTP_HOST'];
// Lees de gevraagde bron
$resource = $_SERVER['REQUEST_URI'];
// Lees de waarde van de queryreeks
$query = $_SERVER['QUERY_STRING'];
// Combineer alle onderdelen om het volledige URL-adres te krijgen
$url = $protocol.$domein.$bron;
// Druk het URL-adres van de huidige pagina af
echo "
Het volledige URL-adres van de huidige pagina is:
". $url;// Druk het gedeelte van de queryreeks af
echo "
De queryreeks is:
". $vraag;?>
Uitgang:
De volgende uitvoer verschijnt na het uitvoeren van het bovenstaande script vanaf de server zonder enige queryreeks:. Er is geen queryreeks in de URL. Dus de uitvoer toont de lege queryreeks.
De volgende uitvoer verschijnt na het uitvoeren van het bovenstaande script vanaf de server met de queryreeks:. De volgende uitvoer toont het URL-adres met de queryreeks en de queryreeks afzonderlijk:.
Conclusie
In deze zelfstudie worden verschillende manieren getoond om de volledige URL van de huidige pagina op te halen aan de hand van verschillende voorbeelden. De manier om de URL en de queryreeks te scheiden, wordt ook getoond in deze zelfstudie. Hopelijk helpt deze tutorial de lezers de manier te kennen om de volledige URL van de huidige pagina te lezen met behulp van het PHP-script.