IV.2.2.PHP11
Le langage PHP a été créé par
Rasmus Lerdorf vers la fin de l'année 1994, pour ses besoins personnels.
Comme dans beaucoup d'autres cas, la mise à disposition de ce langage
sur l'Internet est à l'origine de son développement par beaucoup
d'autres utilisateurs qui y ont vu un outil propre à satisfaire leurs
besoins. Après diverses évolutions, PHP en est (depuis le 19
septembre 2013) à sa nouvelle version 5.5.4, celle que nous
utilisons.
IV.2.2.1. Définition
PHP est un langage de programmation, très
proche du langage C, dont il reprend l'essentiel de la syntaxe, et
destiné à être intégré dans des pages HTML.
Voici un exemple qui illustre la réponse d'une requête php.
<HTML>
<HEAD><TITRE> HTML avec PHP pour
lutumba</TITRE></HEAD><BODY><H1>
HTML+PHP</H1> Nous sommes le
<?php echo Date («j/m/Y»); ?>
<P>
<?php echo»Je suis ». $_SERVER[`HTTP_USER_AGENT'] .
»<BR>» ;
echo»Je dialogue avec « . $_SERVER[`SERVER_NAME'] ;
?>
</BODY><HTML>
Il s'agit d'un document contenant du code HTML classique, au
sein duquel nous avons introduit des commandes encadrées par les balises
<?php et ?>. Tout ce qui se trouve entre ces commandes est envoyé
à un interpréteur du langage PHP intégré à
Apache. Cet interpréteur lit les instructions et les exécute.
Ici nous avons deux occurrences de code PHP (que l'on
appellera « scripts » à partir de maintenant). La premier fait
partie de la ligne suivante :
48
Nous sommes le <?php echo Date («j/m/Y»); ?>
Le début de la ligne est du texte traité par le serveur Apache
comme du HTML.
Ensuite nous trouvons une instruction echo
Date(«j/m/Y»);. La fonction echo()est l'équivalent du printf()
utilisé en C. Elle écrit sur la sortie standard, laquelle est
directement transmise au navigateur par le serveur web. La fonction PHP date()
récupère la date courante et la met en forme selon un format
donné (ici, la chaine j/m/Y qui correspond à jour, mois et
année sur quatre chiffres). La syntaxe de PHP est relativement simple,
et la plus grande partie de la richesse du langage réside dans ses
innombrables fonctions. Il existe des fonctions pour créer des images,
pour générer du PDF, pour lire ou écrire dans des
fichiers, et - ce qui nous intéresse particulièrement - pour
accéder à des bases de données.
Le script de l'exemple ci-haut illustre un autre aspect
essentiel du langage. Non seulement il s'intègre directement avec le
langage HTML, mais toutes les variables d'environnement décrivant le
contexte de communication entre le navigateur et le serveur web sont
directement accessibles sous forme de variables PHP.
Tous les noms de variables de PHP débutent par un
« $ ». Voici la première ligne du script dans laquelle nous
insérons une variable CGI transmise par le serveur. echo»Je suis
». $_SERVER[`HTTP_USER_AGENT']. »<BR>» ; Le point « .
» désigne l'opérateur de concaténation de
chaîne en PHP. La commande echo envoie donc sur la sortie standard une
chaîne obtenue en concaténant les trois éléments
suivants :
? Une sous-chaîne contenant le texte « Je suis
»
? La chaîne correspondant au contenu de la variable CGI
HTTP_USER_AGENT ;
? La chaîne contenant la balise HTML <BR>
49
Cette création de contenu par concaténation de
texte simple, de variables PHP et de balises HTML est une pratique
extrêmement courante. Le point le plus important ici est l'exploitation
de la variable CGI HTTP_USER_AGENT qui représente le navigateur qui a
demandé l'exécution du script. Cette variable est l'un des
éléments du tableau PHP $_SERVER qui est automatiquement
créé par le serveur et transmis au script PHP. Ce tableau est du
type « tableau associatif », chaque élément
étant référencé par un nom.
L'élément correspondant au nom du serveur est
référencé par SERVER_NAME et se trouve donc accessible
dans le tableau avec l'expression $_SERVER[`SERVER_NAME']. Un script PHP a
accès à plusieurs tableaux associatifs pour
récupérer les variables d'environnement ou celles transmises via
HTTP. La table IV.1 donne la liste de ces tableaux.
Tableau associatif
|
Contenu
|
$_SERVER
|
Contient les variables CGI, (comme SERVER_NAME,
CONTENT_TYPE, ...), ainsi que des variables propres à
l'environnement PHP comme PHP_SELF, le nom du script courant.
|
$_ENV
|
Contient les variables d'environnement système, que
l'on peut également récupérer par la fonction
getenv().
|
$_COOKIE
|
Contient les cookies transmis au script.
|
$_GET
|
Contient les paramètres HTTP transmis en mode GET.
|
$_POST
|
Contient les paramètres HTTP transmis en mode POST
|
$_FILES
|
Contient la liste des fichiers transmis au serveur par le
navigateur
|
$_REQUEST
|
Contient toutes les variables de quatre tableaux
précédents
|
$_SESSION
|
Contient les variables de session PHP
|
$_GLOBALS
|
Contient les variables globales du script.
|
Tableau 3:Tableau prédéfinis de
PHP
50
En résumé, nous disposons automatiquement, sous
forme de variable PHP et sans avoir besoin d'effectuer un décryptage
compliqué, de la totalité des informations
échangées entre le client et le serveur. Notons que ces tableaux
sont « super globaux », c'est-à-dire accessible dans toutes
les parties du script, et même au sein des fonctions ou des
méthodes.
|