Ceci est une ancienne révision du document !
PHP est un langage de programmation interprété développé dès 1995 par Rasmus Lerdorf. Son succès tient à son efficacité pour créer des sites web dynamiques.
En effet, contrairement aux pages HTML statiques (dont le contenu est fixé par le développeur du site), il permet d'écrire des pages dynamiques personnalisées en fonction des interactions avec l'utilisateur. Il a permis de créer un grand nombre de sites web célèbres, comme Facebook et Wikipédia.
Contrairement au HTML et au CSS, il n'est pas directement exploitable par les navigateurs et nécessite qu'un serveur génère le code HTML à la demande. Nous allons donc, pour le tester, utiliser un serveur web utilisable à partir d'une clé USB qui le supporte, ce sera Zazou Mini Web Server (ZMWS)
Aujourd'hui la référence est PHP7 mais ZMWS ne supporte que PHP5.1.2
<?php instruction1; // Ceci est une instruction instruction2; bloc_instruction3 { // Ceci est le début d'un bloc d'instruction instruction31; instruction32; ... } instruction4; ... ?>
Elles permettent de stocker des informations ou des listes d'informations utiles.
// Variables $nom = "Dupond"; $age = 14; // Tableau (liste de variables $identite[0]["nom"] = "Durand"; $identite[0]["age"] = 16; $identite[1]["nom"] = "Martin"; $identite[1]["age"] = 13; // Calculs $différence_age = $identite[0]["age"] - $identite[1]["age"]; $age++; // L'age est augmenté de 1 ans $age *= 2; // L'age est multiplié par 2
Pour répéter des instructions plusieurs fois ou sur une liste.
Il existe plusieurs types de boucles :
// Répéter tant-que la condition est vraie (compteur de 0 à 9) $x = 0; while ($x < 10) echo $x++; // Répéter un certain nombre de fois (exemple compteur de 5 à 25 par nombre impair) for ($x = 5; $x <= 25; $x += 2) echo $x; // Répéter pour toutes les personnes (augmenter l'age d'un an) foreach ($identite as $personne) $personne["age"] = $personne["age"] + 1;
Pour décider le traitement à effectuer en fonction d'un contenu de variable.
// if else if ($sexe == "M") echo "Masculin"; else if ($sexe == "F") echo "Féminin"; else echo "Indéterminé"; // switch case switch ($sexe) { case "M": echo "Masculin"; break; case "F": echo "Féminin"; break; default: echo "Indéterminé"; }
Il existe un très grand nombre de fonctions (voir la référence du langage). Il est possible pour l'utilisateur de créer ses propres fonctions.
<?php // Ceci est une fonction créée par le programmeur // Additionner 2 nombres a et b function mon_addition (a, b) { echo "Calcul de a + b <br/>"; $x = $a + $b; return $x; } // Ceci est le programme qui utilise la fonction $a = 2; echo "a = " . $a . "<br/>"; $b = 5; echo "b = " . $b . "<br/>"; $c = mon_addition ($a, $b); echo "Le résultat est " . $c . "<br/>": ?>
Pour afficher un texte ou des résultats dans le navigateur, il faut les transformer en HTML :
echo "Votre age est " . $age . " ans."; // Pour écrire à l'écran l'age et passer sur la ligne suivante printf ("L'age de %s est %d ans.", $nom, $age); // La même chose mais en plus puissant (%s = texte %d = nombre ...)
Les sorties PHP ne différencient pas les espaces, tabulations (indentation) et saut de ligne. Pour générer un code HTML lisible on peut insérer des caractères spéciaux (\t pour l'indentation et \n pour le saut de ligne).
Le code : foreach ($identite as $individu) printf (“L'age de %s est %d ans.”, $individu[“nom”], $individu[“$age”]); donne le résultat suivant : L'age de Durand est 16 ans.L'age de Dupond est 13 ans. (sur une seule ligne)
Le code : foreach ($identite as $individu) printf (“L'age de %s est %d ans.\n”, $individu[“nom”], $individu[“$age”]); donne le résultat suivant :
L'age de Durand est 16 ans.
L'age de Martin est 13 ans. (sur 2 ligne)