Dans ce tutoriel, nous vous montrons comment un programme PHP pour récupérer l’URL d’une page web.
Dans la pratique du développement web, les webmasters sont souvent à la recherche de l’URL de la page courante telle qu’elle s’affiche dans la barre d’adresse du navigateur. Cependant, il n’existe pas de fonction unique en PHP permettant de récupérer cette URL en un seul appel.
Certains développeurs choisissent de placer l’URL de la page en cours dans les métadonnées de partage des réseaux sociaux, comme Facebook ou Twitter, afin de permettre aux utilisateurs de partager la page. Néanmoins, la méthode la plus efficace pour récupérer l’URL de la page web en cours reste l’utilisation d’un code PHP dédié à cette tâche.
Plusieurs raisons expliquent pourquoi il n’y a pas de fonction PHP standard pour récupérer l’URL actuelle :
Voici un tableau résumant ces raisons :
Raisons pour l’absence d’une fonction PHP standard pour l’URL actuelle |
---|
1. Configuration du serveur : Peut ou non fournir ces informations. |
2. Différences entre les serveurs : NGINX et Apache utilisent des méthodes différentes. |
3. Variables dépendantes du client : La valeur de certaines variables peut varier selon le navigateur et l’emplacement du client. |
Lorsque nous avons besoin de construire des URL dynamiques en PHP, nous utilisons généralement des fonctions qui fournissent les différents éléments, que nous assemblons par la suite en utilisant la concaténation de chaînes.
Il est important de comprendre qu’une URL suit généralement la structure de base suivante :
Un exemple d’URL courante, particulièrement utile lors du développement en local (localhost), est le suivant :
$actual_link = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
Dans cet exemple, la variable $actual_link stocke à la fois l’hôte du site et l’URI de la requête en utilisant le protocole HTTP. Cependant, il est important de noter que cette méthode ne gère pas automatiquement les protocoles mixtes, tels que HTTPS mélangé avec HTTP ou FTP. Pour une manipulation plus avancée de ces cas particuliers, des opérations supplémentaires sont nécessaires.
Pour obtenir le nom du serveur dans un script PHP, il est possible d’exploiter la variable SERVER_NAME, qui constitue une solution souple. Cependant, il faut noter que cette méthode lie le nom du serveur à la configuration spécifique de la machine. Ce qui fonctionne parfaitement aujourd’hui sur votre environnement de développement local (localhost) peut cesser de fonctionner une fois que vous le mettez en production. De même, en utilisant la variable HTTP_HOST, vous obtenez l’hôte du serveur, y compris le port d’accès (généralement 80, mais qui peut changer sur des configurations particulières, notamment en DMZ ou sur des réseaux privés).
Le tableau superglobal $_SERVER est une source riche d’informations liées à la requête HTTP. Pour voir l’ensemble des informations qu’il collecte, vous pouvez vous rendre sur la documentation officielle correspondante ou exécuter le code suivant dans un script PHP :
var_dump($_SERVER);
Cela affichera une liste complète des variables contenues dans $_SERVER, vous permettant de voir toutes les informations disponibles.
Par exemple, vous pouvez accéder aux informations suivantes :
D’autres variables utiles pour composer votre URL incluent :
Comment connaître l’URL de la page en cours avec PHP ?
Nous combinons les variables SERVER_NAME et REQUEST_URI pour obtenir l’URL complète de la page actuelle.
SERVER_NAME représente le nom du serveur sur lequel le script est exécuté.
REQUEST_URI, quant à elle, représente l’URI de la page, par exemple, /index.php.
Voici un exemple simple qui suppose que le protocole est HTTP :
$serverName = $_SERVER['SERVER_NAME']; // Récupère le nom du serveur.
$requestUri = $_SERVER['REQUEST_URI']; // Récupère l'URI de la page.
// Concatène le protocole HTTP, le nom du serveur et l'URI pour obtenir l'URL complet.
$url = "http://$serverName$requestUri";
echo "L'URL de la page en cours est : $url";
Dans cet exemple, nous utilisons SERVER_NAME et REQUEST_URI pour assembler l’URL complet de la page en cours en supposant que le protocole est HTTP.
// Récupération du nom du serveur depuis la variable SERVER_NAME.
$serverName = $_SERVER['SERVER_NAME'];
// Récupération de l'URI de la page depuis la variable REQUEST_URI.
$requestUri = $_SERVER['REQUEST_URI'];
// Définition du protocole, supposant qu'il s'agit d'HTTP.
$protocol = 'http';
// Vérification si le serveur utilise HTTPS.
if (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on') {
$protocol = 'https';
}
// Concaténation du protocole, du nom du serveur et de l'URI pour former l'URL complet.
$url = "$protocol://$serverName$requestUri";
// Affichage de l'URL de la page en cours.
echo "L'URL de la page en cours est : $url";
Dans ce code :
$_SERVER['SERVER_NAME']
.$_SERVER['REQUEST_URI']
.$_SERVER['HTTPS']
. Si c’est le cas, nous mettons à jour le protocole à HTTPS.Ainsi, ce code est capable de détecter le protocole (HTTP ou HTTPS) et de générer l’URL complète de la page en cours, quel que soit le serveur sur lequel il est exécuté.
Le commentaire composé est un exercice littéraire qui consiste à analyser un texte en respectant…
Les adjectifs liés en français sont les adjectifs qui s’accordent en genre (masculin/féminin) et en…
Voici une liste étendue de mots piégeux en français, avec leurs genres et des explications…
Apprendre à distinguer le genre des noms en français peut être un véritable défi pour…
1. Informations Générales Nom complet : Charles-Louis de Secondat, Baron de La Brède et de…
Introduction L’Art de la Guerre (Dell’arte della guerra), publié en 1521, est l’un des ouvrages…
This website uses cookies.