Créer des sites Web dynamiques en PHP (PHP Hypertext Preprocessor)

Auteur: Mohamed CHINY Durée necessaire pour le cours de Créer des sites Web dynamiques en PHP (PHP Hypertext Preprocessor) Niveau recommandé pour le cours de Créer des sites Web dynamiques en PHP (PHP Hypertext Preprocessor) Supports vidéo disponibles pour ce cours Exercices de renforcement disponibles pour ce cours Quiz disponible pour ce cours

Page 16: Variables d'environnement et constantes PHP prédéfinies

Toutes les pages

Variables d'environnement

C'est quoi une variable d'environnement?

PHP dispose d'une série de variables déjà créées et qui stockent des données relatives à l'environnement d’exécution du code. On les appelle variables d'environnement.

Les variables d'environnement sont très utiles en programmation (notamment en PHP). Il permettent d'avoir une idée claire sur l'environnement du programme qui peut être soit le client ou le serveur. Elles peuvent ainsi fournir des informations sur le type du serveur, son adresse IP, version des spécifications CGI utilisées, type du navigateur du visiteur, le nom de sa machine... etc

Pour connaitre toutes les variables d'environnement disponibles on fait appel à la fonction phpinfo().

Fonction phpinfo()

La fonction phpinfo() permet d'avoir un récapitulatif sur la configuration de PHP sur le serveur Web. Elle affiche un tableau qui contient de nombreuses informations telles que la version du langage, options de compilation, extensions, entêtes HTTP, informations sur le système. Cependant, cette fonction est connue pour pouvoir englober l'ensemble des variables d'environnement disponibles associées à leurs valeurs courantes.

Pour avoir tous ces détails il suffit d’exécuter le code:
<?php
   phpinfo();
?>
Il suffit de défiler la page jusqu'au bloc Environment qui liste toutes les variables d'environnement disponibles. (Il est possible que le bloc porte un autre titre mais c'est facile à identifier).

Manipulation des variables d'environnement

Il existe deux manières d'appeler les variables d’environnement:
  • Variable $_SERVER: c'est d'une variable superglobale. Il s'agit en fait d'un tableau associatif dont les clés représentent les éléments d'environnement dont on souhaite connaitre la valeur. $_SERVER est également appelée variable serveur.
  • fonction getenv(): Cette fonction accepte comme paramètre une chaîne de caractères qui est la même que l'on passe à la variable $_SERVER en guise de clé. Cette chaîne représente l'élément dont on cherche à connaitre la valeur.

Exemple:

Quand j'ai exécuté le code suivant sur ma machine personnelle:
<?php
   echo $_SERVER["HTTP_USER_AGENT"];
?>
j'ai obtenu le résultat suivant:
Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36
Il s'agit d'un extrait d'informations concernant le navigateur que j'utilise et le moteur de rendu embarqué.

Et quand j'ai exécuté celui là:
<?php
   echo getenv("HTTP_USER_AGENT");
?>
j'ai eu ce résultat:
Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36
Les deux résultats sont identiques que vous utilisiez la variable superglobale $_SERVER ou la fonction getenv(). Cependant, la plupart des développeurs PHP ont un léger penchant vers la variable $_SERVER.

Liste des variables d'environnement

Dans ce paragraphe, je vais essayer de lister les variables d'environnement les plus fréquents. Si vous voulez connaitre toutes les variables existantes il suffit d’exécuter la fonction phpinfo().

SERVER_NAME getenv("SERVER_NAME") ou $_SERVER["SERVER_NAME"]
Retourne le nom du serveur qui exécute le script.

SERVER_ADDR getenv("SERVER_ADDR") ou $_SERVER["SERVER_ADDR"]
Retourne l'adresse IP du serveur qui exécute le script.

SERVER_ADMIN getenv("SERVER_ADMIN") ou $_SERVER["SERVER_ADMIN"]
Retourne l'email de l'administrateur du serveur.

REQUEST_METHOD getenv("REQUEST_METHOD") ou $_SERVER["REQUEST_METHOD"]
Retourne la méthode utilisé pour la requête HTTP.

DATE_GMT getenv("DATE_GMT") ou $_SERVER["DATE_GMT"]
Retourne la date du serveur au format GMT.

DATE_LOCAL getenv("DATE_LOCAL") ou $_SERVER["DATE_LOCAL"]
Retourne la date du serveur au format local.

DOCUMENT_ROOT getenv("DOCUMENT_ROOT") ou $_SERVER["DOCUMENT_ROOT"]
Retourne le chemin de la racine du serveur.

HTTP_HOST getenv("HTTP_HOST") ou $_SERVER["HTTP_HOST"]
Retourne le nom du domaine du serveur.

HTTP_USER_AGENT getenv("HTTP_USER_AGENT") ou $_SERVER["HTTP_USER_AGENT"]
Retourne des informations sur le navigateur et le système d'exploitation du client.

REMOTE_ADDR getenv("REMOTE_ADDR") ou $_SERVER["REMOTE_ADDR"]
Retourne l'adresse IP du client qui appelle le script CGI.

PHP_SELF getenv("PHP_SELF") ou $_SERVER["PHP_SELF"]
Retourne le nom de la page exécutée.

HTTP_REFERER getenv("HTTP_REFERER") ou $_SERVER["HTTP_REFERER"]
Retourne le nom de la page qui a envoyé le client vers la page courante.

Exemple:
<?php
   echo $_SERVER["HTTP_USER_AGENT"];
   // Affiche: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36
   
   echo $_SERVER["REQUEST_METHOD"];
   // Affiche: GET
   
   echo $_SERVER["HTTP_HOST"];
   // Affiche: localhost
?>

Constantes PHP

Les constantes prédéfinie en PHP

Les constantes en général servent à rendre un code plus claire et facile à comprendre. En plus des constantes personnalisées que l'on peut créer à l'aide de la fonction define(), PHP dispose de ses propres constantes prédéfinies.

Les constantes PHP sont des constantes prédéfinies par le langage. Il en existe beaucoup mais j'ai opté pour vous énumérer les plus fréquentes:
  • PHP_OS: retourne des informations sur le système d'exploitation installé sur le serveur.
  • PHP_VERSION: retourne la version du langage PHP installée sur le serveur Web.
  • __FILE__: (deux soulignés avant et après) retourne le nom du fichier en cours (qui exécute le script PHP).
  • __LINE__: (deux soulignés avant et après) retourne numéro de la ligne qui exécute la constante.

Exemple:
<?php
   echo PHP_OS;
   // Affiche: WINNT
   
   echo __LINE__;
   // Affiche: 5
?>

Variables d'environnement en vidéo