Matière: Enseignante:
Programmation web Ameni Aloui
Cours PHP: Partie 1
Niveau: L2TI Année universitaire: 2024-2025
Documentation en ligne
Pour obtenir en ligne toute la documentation officielle (en français) sur une
commande, tapez l’URL suivante dans la barre d’adresse de votre navigateur
Internet :
http://fr.php.net/
Et rajouter en fin d’URL le nom de la commande.
Exemple :
http://fr.php.net/echo
Intégration d’un script dans une page
Les pages web sont au format html. Les pages web dynamiques générées
avec PHP4 sont au format php. Le code source php est directement insérer
dans le fichier html grâce au conteneur de la norme XML :
<?php … ?>
Exemple:
<html>
<body> Autres syntaxes d’intégration :
<?php <? … ?>
echo ’’Bonjour’’; <script language=‘’php’’> … </script>
?> <% … %>
</body>
</html>
NB : Attention ! Chaque instruction de code php doit être terminée par un
point virgule. Son absence entraînera automatiquement une erreur de type
"parse error".
2
Exemple de script
Exemple de script, code
source (côté serveur) : Autre écriture du même script :
<html> <?php
<body> echo ‘’<html>\n<body>\n’’;
<h1>Mon premier script</h1> echo ‘’<h1>Mon premier script</h1>\n’’;
<?php echo ‘’Bonjour\n’’; ?> echo ‘’Bonjour\n’’;
</body> echo ‘’</body>\n</html>\n’’;
</html> ?>
Code source (côté client)
Résultat affiché par le navigateur : de la page essai.php3
résultant du script
Affichage
Les fonctions d’affichage :
echo() : écriture dans le navigateur
print() : écriture dans le navigateur
Exemples :
<?php
echo “Bonjour” ;
?>
<?php
print (“Bonjour”) ;
?>
<?php
echo "<img src=\"/power/phplinks.jpg\">";
?>
<?php
$a="<a href=\"/index.php3\">le lien</a>";
print ($a);
?>
3
Commentaires
Un script php se commente comme en C :
Exemple :
<?php
// commentaire de fin de ligne
/* commentaire
sur plusieurs
lignes */
# commentaire de fin de ligne comme en Shell
?>
Tout ce qui se trouve dans un commentaire est ignoré. Il est conseillé de
commenter largement ses scripts.
Variables, types et opérateurs (I)
Le typage des variables est implicite en php. Il n’est donc pas nécessaire de
déclarer leur type au préalable ni même de les initialiser avant leur utilisation.
Les identificateurs de variable sont précédés du symbole « $ » (dollars).
Exemple : $str.
Les variables peuvent être de type entier (integer), réel (double), chaîne de
caractères (string), tableau (array), objet (object), booléen (boolean).
Il est possible de convertir une variable en un type primitif grâce au cast(1)
(comme en C).
Exemple :
$str = ’’12’’; // $str vaut la chaîne ‘’12’’
$nbr = (int)$str; // $nbr vaut le nombre 12
(1) : Le cast est une conversion de type. L’action de caster consiste en convertir une variable d’un
type à un autre.
4
Variables, types et opérateurs (II)
Quelques fonctions :
empty($var) : renvoie vrai si la variable est vide
isset($var) : renvoie vrai si la variable existe
unset($var) : détruit une variable gettype($var)
: retourne le type de la variable
settype($var, ’’type’’) : convertit la variable en type type (cast)
is_long(), is_double(), is_string(), is_array(), is_object(), is_bool(),
is_float(), is_numeric(), is_integer(), is_int()…
Une variable peut avoir pour identificateur la valeur d’une autre variable.
Syntaxe : ${$var} = valeur;
Exemple :
$str = ‘’chaine’’;
${$str} = ‘’PHP’’;
echo $chaine; // la variable $chaine vaut ’ PHP ’
Variables, types et opérateurs (III)
La portée d’une variable est limitée au bloc dans lequel elle a été crée. Une
variable locale à une fonction n’est pas connue dans le reste du programme.
Tout comme une variable du programme n’est pas connue dans une fonction.
Une variable créée dans un bloc n’est pas connue dans les autres blocs,
mêmes supérieurs.
Opérateurs arithmétiques :
+ (addition), - (soustraction), * (multiplié), / (divisé), % (modulo), ++
(incrément), --(décrément). Ces deux derniers peuvent être pré ou post fixés.
Opérateurs d’assignement :
= (affectation), *= ($x*=$y équivalent à $x=$x*$y), /=, +=, -=, %=
Opérateurs logiques :
And; && (et); or, || (ou); xor (ou exclusif); ! (non)
Opérateurs de comparaison :
== (égalité); < (inférieur strict); <= (inférieur large); >; >=; != (différence)
5
Variables, types et opérateurs (IV)
Exemple :
<?php <?php <?php
$a=3; $a="a"; $a=2;
$b=2; $b="b"; print($a++);print("<br>");
$c=$a/$b; $c=$a.$b; print($a);print("<br>");
print($c); print($c); $a=2;
?> ?> print(++$a);
?>
1.5 ab 2
3
3
$a++ correspond à $a = $a +1.
En post-incrémentations, la variable sera incrémenté après l'opération courante.
En pré-incrémentations la variable sera incrémenté avant l'opération courante.
Variables, types et opérateurs (V)
Signalons un opérateur très spécial qui équivaut à une structure conditionnelle
complexe if then else à la différence qu’il renvoie un résultat de valeur pouvant
ne pas être un booléen : l’opérateur ternaire.
Syntaxe :
(condition)?(expression1):(expression2);
Si la condition est vrai alors évalue et renvoie l’expression1 sinon évalue et
renvoie l’expression2.
Exemple :
$nbr = ($x>10)?($x):($x%10);
Dans cet exemple, la variable $nbr prend $x pour valeur si $x est strictement
supérieur à 10, sinon vaut le reste de la division entière de $x par 10.
6
Constantes (I)
Il y a des différences entre les constantes et les variables :
1. Les constantes ne commencent pas par le signe ($);
2. Les constantes sont définies et accessibles à tout endroit du code;
3. Les constantes ne peuvent pas être redéfinies une fois qu'elles ont été
définies;
4. Les constantes ne peuvent contenir que des scalaires (c'est à dire les types
booléen, entier, double et chaîne de caractères)
Constantes (II)
Syntaxe :
define(‘’var’’,valeur[,bool case_intensitive]) :
La fonction define définit la constante de nom var et de valeur valeur.
Si case_insensitive vaut TRUE, le nom de la constante sera insensible au
Min/Maj, d’où CONSTANT et constant représentent des valeurs identiques.
Par défaut, ces constantes représenteront des valeurs différentes.
Exemple :
<?php
define ("CONSTANT", "Bonjour à tous.");
echo CONSTANT; // affiche "Bonjour à tous."
echo constant; // affiche "constant" et une alerte
define ("BONJOUR", "Salut toi.",TRUE);
echo BONJOUR; // affiche "Salut toi."
echo Bonjour; // affiche "Salut toi."
?>
7
Booléens
Les variables booléennes prennent pour valeurs TRUE (vrai) et FALSE (faux).
Une valeur entière nulle est automatiquement considérée comme FALSE. Tout
comme une chaîne de caractères vide ‘’’’, ‘’0’’, ‘0’ et 0.
Exemple :
if(0) echo 1; // faux
if('''') echo 2; // faux
if(''0'') echo 3; // faux
if(''00'') echo 4;
if('0') echo 5; // faux
if('00') echo 6;
if('' '') echo 7;
Cet exemple affiche 467. Donc l’espace ou la chaîne ‘’00’’ ne sont pas
considérés castés en FALSE.
Mathématiques
Il existe une myriade de fonctions mathématiques.
abs($x) : valeur absolue
ceil($x) : arrondi supérieur
floor($x) : arrondi inférieur
pow($x,$y) : x exposant y
round($x,$i) : arrondi de x à la ième décimale
max($a, $b, $c …) : retourne l’argument de valeur maximum
pi() : retourne la valeur de Pi
Et aussi : cos, sin, tan, exp, log, min, pi, sqrt…
Quelques constantes :
M_PI : valeur de pi (3.14159265358979323846)
M_E : valeur de e (2.7182818284590452354)
8
Chaînes de caractères (I)
Une variable chaîne de caractères n’est pas limitée en nombre de caractères.
Elle est toujours délimitée par des simples quottes ou des doubles quottes.
Exemple :
$nom = ‘’Mohamed’’;
Les doubles quottes permettent l’évaluation des variables et caractères
spéciaux contenus dans la chaîne alors que les simples ne le permettent pas.
Exemples :
echo ‘’Nom: $nom‘’; // affiche Nom:
Mohamed echo ’Nom: $nom‘; // affiche
Nom: $nom
Quelques caractères spéciaux : \n (nouvelle ligne), \r (retour à la ligne), \t
(tabulation horizontale), \\ (antislash), \$ (caractère dollars), \’’ (double quotte).
Exemple : echo ‘’Hello Word !\n’’;
Chaînes de caractères (II)
Opérateur de concaténation de chaînes : . (point)
Exemple 1 :
$str = ‘’Hello’’;
$ch = ‘’Word’’;
echo $str.$ch;
Exemple 2 :
$name = ‘’Mohamed’’;
$whoiam = $name.‘’Ali’’;
Exemple 3 :
$name= ‘Mohamed’;
$name .= ‘’Ali’;
9
Chaînes de caractères (III)
Affichage d’une chaîne avec echo:
Exemples:
echo ‘Hello Word.’; // affiche Hello Word.
$name = ‘’Mohamed’’;
echo ‘’Hello ${name}\n’’; // affiche Hello Mohamed
echo ’’Nom : ’’, $name; // affiche Nom: Mohamed
echo(‘’Bonjour’’); // affiche Bonjour
Quelques fonctions:
strlen($str) : retourne le nombre de caractères d’une chaîne
strtolower($str) : conversion en minuscules
strtoupper($str) : conversion en majuscules
trim($str) : suppression des espaces de début et de fin de chaîne
substr($str,$i,$j) : retourne une sous chaîne de $str de taille $j et débutant à
la position $i
strnatcmp($str1,$str2) : comparaison de 2 chaînes
ord($char) : retourne la valeur ASCII du caractère $char
Structures de contrôle (I)
Structures conditionnelles :
if( ... ) {
…
} elseif {
…
} else {
…
}
switch( … ) {
case … : { … } break
…
default : { … }
}
10
Structures de contrôle (II)
Structures de boucle :
for( … ; … ; … ) {
…
}
while( … ) {
…
}
do {
…
} while( … );
Structures de contrôle (III)
Exemples :
<?php <?php <?php
for ($i=0;$i<4;$i++) $i=0; while ($i<4) $i=0;
{ echo $i."<br>"; } {echo $i."<br>"; do {echo $i."<br>";
?> $i++; } $i++; }
?> while ($i<4)
?>
0 0 0
1 1 1
2 2 2
3 3 3
11
Structures de contrôle (IV)
<?php
$note = 10;
switch ($note)
{
case 0: echo "Tu es vraiment un gros Zér0 !!!";
break;
case 5: echo "Tu es très mauvais";
break;
case 7: echo "Tu es mauvais";
break;
case 10: echo "Tu as pile poil la moyenne, c'est un peu juste...";
break;
case 12:echo "Tu es assez bon";
break;
case 16:echo "Tu te débrouilles très bien !";
break;
case 20:echo "Excellent travail, c'est parfait !";
break;
default:echo "Désolé, je n'ai pas de message à afficher pour cette note";
}
?>
Structures de contrôle (V)
L’instruction break permet de quitter prématurément une boucle.
Exemple :
while($nbr = $tab[$i++]) {
echo $nbr.’’<br />’’;
if($nbr == $stop)
break;
}
L’instruction continue permet d’éluder les instructions suivantes de l’itération
courante de la boucle pour passer à la suivante.
Exemple :
for($i=1; $i<=10; $i++) {
if($tab[$i] == $val)
continue;
echo $tab[$i];
}
12
Tableaux (I)
Une variable tableau est de type array. Un tableau accepte des éléments de
tout type. Les éléments d’un tableau peuvent être de types différents et sont
séparés d’une virgule.
Un tableau peut être initialisé avec la syntaxe array.
Exemple :
$tab_colors = array(‘red’, ’yellow’, ’blue’, ‘white’);
$tab = array(‘blue’, 2002, 20.5, $name);
Mais il peut aussi être initialisé au fur et à mesure.
Exemples :
$prenoms[ ] = ‘’Clément’’; $villes[0] = ‘’Paris’’;
$prenoms[ ] = ‘’Justin’’; $villes[1] = ‘’Londres’’;
$prenoms[ ] = ‘’Tanguy’’; $villes[2] = ‘’Lisbonne’’;
L’appel d’un élément du tableau se fait à partir de son indice (dont l’origine est
zéro).
Exemple : echo $tab[10]; // pour accéder au 11ème élément
Tableaux (II)
Parcours d’un tableau : deux manières sont proposées :
$tab = array(‘Hugo’, ‘Jean’, ’Mario’);
Exemple 1 :
$i=0;
while($i <= count($tab)) { // count() retourne le nombre d’éléments
echo $tab[$i].’\n’;
$i++;
}
Exemple 2 :
foreach($tab as $elem) {
echo $elem.’’\n’’;
}
La variable $elem prend pour valeurs successives tous les éléments du
tableau $tab.
13
Tableaux (III)
Quelques fonctions:
Count/ sizeof($tab) : retournent le nombre d’éléments du tableau
in_array($var,$tab) : dit si la valeur de $var existe dans le tableau $tab
list($var1,$var2…) : transforme une liste de variables en tableau
range($i,$j) : retourne un tableau contenant un intervalle de valeurs
shuffle($tab) : mélange les éléments d’un tableau
sort($tab) : trie alphanumérique les éléments du tableau
rsort($tab) : trie alphanumérique inverse les éléments du tableau
array_merge($tab1,$tab2,$tab3…) : concatène les tableaux passés en
arguments
array_rand($tab) : retourne un élément du tableau au hasard
Tableaux (IV)
Attention, les variables tableaux ne sont pas évaluées lorsqu’elles sont au
milieu d’une chaîne de caractère délimitée par des doubles quottes.
Exemple :
echo ‘’$tab[3]’’; // syntaxe invalide
echo $tab[3]; // syntaxe valide
14
Tableaux associatifs (I)
Un tableau associatif est appelé aussi dictionnaire ou hashtable. On associe à
chacun de ses éléments une clé dont la valeur est de type chaîne de
caractères.
L’initialisation d’un tableau associatif est similaire à celle d’un tableau normal.
Exemple 1 :
$personne = array(‘’Nom’’ => ‘’César’’, ‘’Prénom’’ => ‘’Jules’’);
Exemple 2 :
$personne[‘’Nom’’] = ‘’César’’;
$personne[‘’Prénom’’] = ‘’Jules’’;
Ici à la clé ‘’Nom’’ est associée la valeur ‘’César’’.
Tableaux associatifs (II)
Parcours d’un tableau associatif : deux manières sont proposées :
$personne = array(‘’Nom’’ => ‘’César’’, ‘’Prénom’’ => ‘’Jules’’);
Exemple 1 :
foreach($personne as $elem) {
echo $elem;
}
Ici on accède directement aux éléments du tableau sans passer par les clés.
Exemple 2 :
foreach($personne as $key => $elem) {
echo ‘’$key : $elem’’;
}
Ici on accède simultanément aux clés et aux éléments.
15
Tableaux associatifs (III)
Quelques fonctions :
array_count_values($tab) : retourne un tableau contenant les valeurs du
tableau $tab comme clés et leurs fréquence comme valeur (utile pour évaluer
les redondances)
array_keys($tab) : retourne un tableau contenant les clés du tableau
associatif $tab
array_values($tab) : retourne un tableau contenant les valeurs du tableau
associatif $tab
array_search($val,$tab) : retourne la clé associée à la valeur $val
Tableaux associatifs (IV)
Quelques fonctions alternatives pour le parcours de tableaux (normaux ou
associatifs) :
reset($tab) : place le pointeur sur le premier élément
current($tab) : retourne la valeur de l’élément courant
next($tab) : place le pointeur sur l’élément suivant
prev($tab) : place le pointeur sur l’élément précédant
each($tab) : retourne la paire clé/valeur courante et avance le pointeur
Exemple :
$colors = array(‘’red’’, ’’green’’, ’’blue’’);
$nbr = count($colors);
reset($colors);
for($i=1; $i<=$nbr; $i++) {
echo current($colors).’’<br />’’;
next($colors);
}
16