Вы находитесь на странице: 1из 30

Le langage PHP

Le langage PHP p.1/??

Sommaire
Les principaux aspects du langage PHP gnralits littraux, variables et constantes tableaux associatifs et indics boucles et tests Quelques exemples

Le langage PHP p.2/??

Quest-ce quun script PHP


Cest un chier dextension .php contenant du code PHP. Tout code PHP doit tre inclus dans une balise <?php ... ?>. Le code PHP produit du texte HTML avec la commande echo on obtient un document HTML produit dynamiquement.

Le langage PHP p.3/??

Exemple : un script trs simple (ExPHPa.php)


<HTML> <HEAD> <TITLE>HTML avec PHP</TITLE></HEAD> <BODY bgcolor=white> Ici cest du HTML statique. <P> <?php echo "Ici cest du HTML dynamique"; ?> </P> </BODY></HTML>

Le langage PHP p.4/??

Traitement dun script PHP


On appelle avec le navigateur une URL de la forme http://serveur/script.php Le serveur web accde au script et excute le code PHP quil contient. Lexcution du code produit un document HTML qui est renvoy au navigateur Attention: PHP est excut sur le serveur: le navigateur reoit du HTML (dynamique).

Le langage PHP p.5/??

Syntaxe de PHP
PHP est un langage de programmation comme le C ou Java, mais beaucoup plus simple apprendre et utiliser (en particulier, pas de types) trs adapt la programmation Web (production de texte) normment de fonctions et de scripts prts lemploi (disponibles sur le Web) Trs utilis pour la ralisation de sites web.

Le langage PHP p.6/??

Syntaxe les bases


Rappel: le code PHP doit tre inclus dans une balise <?php ... ?> (sinon pas interprt). Le code PHP se compose dinstructions spares par des point-virgule; trois manires dinclure des commentaires : 1. entre les signes /* et */ ; 2. en commenant une ligne par // : 3. en commenant une ligne par # .

Le langage PHP p.7/??

Littraux et constantes
Littral = valeur en dur , non modiable littral numrique: 1 ou 3.14 littral chane de caractres: Tintin en Amrique encadr par des guillemets doubles. Constantes = valeur rfrence par un symbole non modiable Cr avec la commande define define (PI, 3.14116) Permet dviter les fautes de frappe ou de les corriger facilement

Le langage PHP p.8/??

Variables
Variable = symbole rfrenant une valeur. syntaxe dune variable: un $ suivi du nom. Exemple: $adresse une variable peut rfrencer des valeurs diffrentes au cours de lexcution pas de variable type en PHP: une variable peut rfrencer un nombre, puis une chane, ... pas de dclaration de variable en PHP ! Attention: minuscules et majuscules. ($adresse et $Adresse: deux variables diffrentes)

Le langage PHP p.9/??

Les types PHP


Les entiers: 1, 2, 3, 12980 Les ottants: 3.14, 1.23, 2093.2988 Les boolens (TRUE ou FALSE) Les chanes de caractres (entre guillemets doubles) Les tableaux et les objets Typage trs souple: PHP convertit le type en fonction de lopration effectue.

Le langage PHP p.10/??

Rle des types PHP


Essentiellement, PHP convertit le type dune valeur en fonction de lopration effectue. Si jcris $a + $b, PHP convertira $a et $b en numriques. Quelle que soit le type dune valeur, on peut la transformer en chane de caractres. Si jcris Valeur 1=$a, Valeur 2=$b, PHP convertit $a et $b en chanes et les inclut dans la chane principale. PHP est conu pour produire du texte!

Le langage PHP p.11/??

Interpolation et concatnation
Interpolation: pouvoir inclure la valeur dune variable directement dans une chane de caractre. Concatnation: assemblage de deux chanes de caractres avec loprateur . .
$a = 2; $b = 3; echo $a + $b = .

$a + $b .

<BR>.

On obtient la chane 2 + 3 = 5<BR> dans le document HTML produit.

Le langage PHP p.12/??

Les tableaux
Tableau = suite de valeurs rfrences par un indice (tableaux indics) ou par une cl (tableaux associatifs) La paire (indice, valeur) ou (cl, valeur) est un lment du tableau. La taille des tableaux est dynamique: on ajoute des lments volont.

Le langage PHP p.13/??

Tableaux indics
Syntaxe pour dsigner un lment: le nom du tableau, puis des crochets indiquant la cl ou lindice.
$tab[0] = "lment 1 "; $tab[1] = "lment 2 "; $tab[2] = 120;

PHP peut affecter automatiquement les indices.


$tab[] = "lment 1 "; // $tab[0] ! $tab[] = "lment 2 "; // $tab[1] ! $tab[] = 120; // $tab[2] !

NB: les indices automatiques commencent 0.

Le langage PHP p.14/??

Tableaux associatifs
On doit donner explicitement la cl. Elle dsigne de manire unique llment.
$mes["Vertigo"] = "Hitchcock"; $mes["Sacrifice"] = "Tarkovski"; $mes["Alien"] = "Scott";

Pour initialiser un tableau, on peut utiliser la commande array.


$mes = array ("Vertigo" => "Hitchcock", "Sacrifice" => "Tarkovski", "Alien" => "Scott");

$tab = array ( "lment 1 ", "lment 2 ", 120)

Le langage PHP p.15/??

Tableaux multi-dimensionnels
Un lment est dsign par un ou plusieurs indices ou cls.
$tab[0][0] $tab[0][1] $tab[1][0] $tab[1][1] = = = = "En "En "En "En haut gauche"; haut droite"; bas gauche"; bas droite";

Valeur de $tab[0]: un tableau une dimension.

$mes = array ( "Vertigo" => array ( "Alfred", "Hitchcock"), "Sacrifice" => array ( "Andrei", "Tarkovski") "Alien" => array ( "Ridley", "Scott"));

Le langage PHP p.16/??

Expression et affectation
Expression: toute instruction qui produit une valeur.
$a + 3; Mon nom est . $nom

peu prs toutes les instructions sont des expressions en PHP. Affectation: on affecte le rsultat dun expression une variable.
$b = $a + 3; $c = Mon nom est . $nom

Le langage PHP p.17/??

Oprateurs arithmtiques
Classique : +, -, /, *, et % pour le modulo.
$a = 3; $b = 8; $c = $a + 2 * $b;

Priorits: voir le poly. Mais le plus simple est dutiliser des parenthses.
$a = 3; $b = 8; $c = $a + (2 * $b);

Le langage PHP p.18/??

Concatnation de chanes
Cest le point . .
$c1 = "Bonjour "; $c2 = "Dominique"; // Affichage de la chane // "Bonjour cher Dominique" echo $c1 . " cher " . $c2;

Pour ajouter un fragment une chane:


$c = "Bonjour cher"; $c = $c . " Dominique"

ou encore la construction quivalente:


$c .= " Dominique"

Le langage PHP p.19/??

Oprateurs de comparaison
Classique: <, >, <=, >=, sauf la comparaison: == (deux = ) Une erreur trs courante:
$i = 1; $j = 2; // if // if Renvoie FALSE: i est diffrent de j. ($i == $j) ... Renvoie la valeur de $j, soit TRUE ! ($i = $j) ...

Le langage PHP p.20/??

Structures de contrle
Permettent de diriger le ux dexcution vers un ensemble dinstruction, ou bloc. Les tests: if-else, switch. Les boucles: while, for, do, foreach. Dans un premier temps on peut se limiter if-else, while et foreach. Voir le polycopi pour les autres.

Le langage PHP p.21/??

Les tests if-then-else


if (expression) { // Bloc si expression est vraie. } else { // Bloc si expression est fausse. } // Ici le script continue.

Le langage PHP p.22/??

Exemple de test
if ($a == 2) { echo La variable a vaut 2 } else { if ($a == 3) { echo La variable a vaut 3 } else { echo La variable a ne vaut ni 2 ni 3 } }

Le langage PHP p.23/??

Le while
Permet dexcuter un bloc dinsructions tant quune condition est remplie.
while (expression) { // Ici, expression est vraie. }

Exemple:
$a = 0; while ($a < 10) { echo a vaut $a; $a = $a + 1; }

Le langage PHP p.24/??

Le foreach
Permet de parcourir un tableau. Tableau indic:
foreach ($tableau as $valeur) { /* bloc */ }

Tableau associatif:
foreach ($tableau as $cle => $valeur) { /* bloc */ }

chaque passage dans le bloc, $valeur contient la valeur de llment courant ($cle contient la cl pour les tableaux associatifs).

Le langage PHP p.25/??

Quelques exemples

Le langage PHP p.26/??

Quelques exemples
PHP permet de rcuprer automatiquement les paramtres transmis par HTTP. Ces paramtres sont stocks dans des tableaux prdnis. le tableau $_SERVER contient les paramtres CGI sur le contexte de la demande. le tableau $_POST contient les paramtres transmis en mode POST. le tableau $_GET contient les paramtres transmis en mode GET. le tableau $_REQUEST contient tous les paramtres!

Le langage PHP p.27/??

Premier exemple (SERVER.php)


<HTML><HEAD> <TITLE>Paramtres CGI</TITLE> </HEAD> <BODY> <?php // Script affichant les paramtres CGI. $serveur = $_SERVER[SERVER_SOFTWARE]; $client = $_SERVER[HTTP_USER_AGENT]; echo "<TABLE BORDER=1>"; echo "<TR><TD>Le serveur<TD>$serveur"; echo "<TR><TD>Le client<TD>$client"; echo "</TABLE><P>"; ?>

Le langage PHP p.28/??

Deuxime exemple (GET.php)


<HTML><HEAD> <TITLE>Paramtres GET</TITLE> </HEAD> <BODY> <TABLE border=2> <?php // Script affichant les paramtres GET. foreach ($_GET as $cle => $valeur) { echo "<TR><TD>$cle<TD>$valeur"; } ?> </TABLE></BODY></HTML>

Le langage PHP p.29/??

Troisime exemple (Bonjour.php)


<HTML><HEAD> <TITLE>Dis bonjour</TITLE> </HEAD><BODY> <?php if (isSet($_REQUEST[nom]) and isSet($_REQUEST[prenom])) { $nom = $_REQUEST[nom]; $prenom = $_REQUEST[prenom]; echo "Bonjour $prenom $nom"; } else echo "Mais qui tes-vous?"; ?> </BODY></HTML>

Le langage PHP p.30/??

Вам также может понравиться