SlideShare une entreprise Scribd logo
Initiation au langage
PHP Hypertext
Preprocessor
Pr. Benabbou Faouzia
Laboratoire de Technologie d’Information et Modélisation
Université Hassan II Mohammedia-Casablanca
Faculté des sciences ben M'sik
Septembre 2015
Plan
2
 Introduction
 Définition de PHP
 Les variables
 Les constantes
 Les tableaux
 Les opérateurs
 Les structures de contrôle PHP
 Les fonctions
 Gestion des fichier
Langages du Web
3
 Code qui s’exécute côté client
HTML HyperText Markup Language
JAVASCRIPT
APPLET JAVA
 Code qui s’exécute côté serveur
 PHP
 ASP
 CGI,…
 Code qui s’exécute côté client ou serveur
PHP
4
 PHP est un langage de programmation
spécialisé dans la génération de code, dont le
langage cible est le HTML.
 Le PHP permet de réaliser des sites Internet
dynamique.
 PHP est un disponible dans plusieurs
environnements, tels que le système Unix ,
Windows, ...
 Il possède une impressionnante quantité
d'outils (manipulation d'images, traitement de
fichiers, accès aux bases de données, etc…)
Définition de PHP
5
 Le PHP(officiellement "PHP: Hypertext
Preprocessor") est un langage complet, écrit
en C, qui reprend une grande partie des
spécificités techniques et sémantiques de ce
langage.
 Le moteur d'interprétation du langage lit un
fichier source PHP, puis génère un flux
destination.
Langages PHP :Fonctionnement
6
 Le code PHP est enregistré dans un fichier sur le
serveur
 A la demande, le serveur interprète le code PHP
du fichier.
 La page modifiée est envoyée au client
 L’utilisateur ne voit pas le PHP
 Lorsqu'une erreur survient, un message est
intégré dans le flux de sortie, et la génération du
script est interrompue.
 Le serveur détecte les fichiers PHP par leur
extension. Extensions courantes: php, php3, php4
Schéma de fonctionnement général
d'un langage de script
7
PHP: Règles d’interprétation
8
 Un bloc PHP est un groupe continu de lignes,
encadré par deux balises :
<? et ?> ou <?php et php?>
 Toute ligne située à l'extérieur de ces balises
n'est pas interprétée et est envoyée telle quelle
dans le flux de sortie.
 Toute ligne située à l'intérieur de ces balises
est considérée comme une instruction PHP et
est donc interprétée par le moteur.
Premier programme
9
 La conception du script PHP est réalisé avec un
éditeur quelconque, ce qui facilite les choses.
<HTML>
<HEAD><TITLE>Mon premier programme
</TITLE></HEAD>
<BODY>
<? echo " Exemple PHP!"; ?>
</BODY>
</HTML>
 L'extension de votre fichier doit être .php afin
d ’être interprété par le serveur
Commentaires & E/S
 Commentaires
 Les E/S
Commentaires
 Le PHP supporte les commentaires comme en C, C++
et Shell Unix.
 Par exemple:
<?php
echo "Ceci est un test"; // Ceci est un commentaire comme en
C++
/* Ceci est un commentaire sur plusieurs lignes, comme en C et
C++ */
echo "Ceci est encore un test";
echo "Enfin, le test final"; # Ceci est un commentaire idem en
Shell Unix
?>
Les E/S
 le PHP possède les fonctions qui permettent d’afficher ou
de saisir des variables de différents types.
 Print: int print ( string arg )
 print affiche la chaîne de caractères arg .
 retourne toujours 1
 On n’est pas obligé d'utiliser des parenthèses.
 Identique à echo
 Exemples:
<?php print("Bonjour le monde");
print "Ce print() se répartit sur plusieurs lignes.
Il affiche aussi les nouvelles lignes";
print "L'échappement de caractères se fait : "comme ceci". "?>
Les E/S: Print
 Utilisation avec des variables
$foo = "foobar";
$bar = "barbar";
print "foo vaut $foo"; // s’affiche: foo vaut
foobar//
 Les guillemets simples annulent le
remplacement des variables
print 'foo vaut $foo'; // foo vaut $fooprint
Les variables
14
 Chaque variable est précédée par '$'
 Contrairement à beaucoup de langages, PHP ne
contient de partie déclarative clairement définie.
 Pour déclarer une variable, il suffit de l'initialiser.
 Celle-ci sera immédiatement accessible, et le restera
jusqu'à la fin du script.
 Le type d'une variable est également défini par la
valeur qui lui à été affecté lors de sa création.
 Les variables en PHP sont toutes dotés du préfixe $
exemple :
$data = 1;
Portée des variables
15
 Selon l'endroit du code où les variables sont
définies, ces dernières auront une portée plus
ou moins grande
 c-à-d qu'elles seront définies soit pour une
partie du code (fonction) soit pour sa totalité.
Portée des variables
16
 Il existe 3 niveaux de définition de variables :
 Le niveau global : Il définit des variables dans
l'intégralité du code d'une page PHP.
 Le niveau local : Il définit des variables propres à
une fonction, dont la durée de vie ne dépasse pas
le temps de cette fonction.
 Le niveau static : Il définit des variables propres à
une fonction, qui persistent pendant l'intégralité du
code de la page PHP.
Type de variable
 PHP supporte les huit types basiques suivants :
 PHP supporte quatre types scalaires :
 Booléen
 entier
 nombre à virgule flottante
 chaîne de caractères
 PHP supporte deux types composés :
 tableau
 objet
 PHP supporte deux types spéciaux :
 ressource : Une ressource est une variable spéciale, contenant une référence vers une
ressource externe. Les ressources sont créées et utilisées par des fonctions spéciales.
 NULL
 On utilise également quelques pseudo−types pour des raisons de lisibilités :
 Mixed : mixed indique qu'un paramètre peut accepter plusieurs (mais pas nécessairement
tous) types.
 Number: indique qu'un paramètre peut être soit un nombre entier, soit un nombre décimal
Dépassement de capacité des
entiers
 Si un nombre est hors de l'intervalle de validité des entiers, il sera
interprété comme un float .
 De même, si vous effectuez une opération qui retourne un nombre
hors de l'intervalle de validité des entiers, un float sera retourné.
 Exemple:
<?php
$large_number = 2147483647;
echo " $large_number " ;
$large_number = 50000 * $million;
echo " $large_number " ;
?>
Conversion des nombres
 Pour explicitement convertir une valeur en entier on peut utiliser les
opérateurs de transtypage (int) ou (integer) .
 Cependant, dans la plupart des situations, ce n'est pas nécesaire,
car une valeur sera automatiquement convertie si un opérateur, une
fonction ou tout autre élément du langage requiert un entier .
<?php
$foo = 10; // $foo est un entier
$bar = (double) $foo; // $bar est un double
$bar=10;
$foo = (float) $bar;
$bar=10.5;
$foo = ( int ) $bar;
?>
Opérations sur les nombres
+ $a+$b Somme
- $a-$b Soustraction
* $a*$b Multiplication
/ $a/$b Division en entière
% $a%$b Modulo, reste de la division
++ $a++ Incrémente de 1 et l’affecte à $a
+=n $a+=n Incrémente de n et l’affecte à $
-- $a-- Décrémente de 1 et l’affecte à $
-=n $a-=n Décrémente de n et l’affecte à $
*=n $a*=n $a= $a*n
/=n $a/=n $a= $a/n
On retrouve les mêmes opérations classiques en C.
Exemple
<?php
$a = ($b = 4) + 5; // $a est maintenant égal à 9, et
$b vaut 4.
$a = 3;
$a += 5; // correspond à l’instruction ’$a = $a + 5’
?>
Division Entière
 Il n'existe pas de division entière en PHP.
 1/2 générera le float 0.5 .
 On peut forcer la valeur au format entier pour
faire l'arrondi.
<?php
$a=25/7; // 3.5714285714286
$b=(int) (25/7); // 3
echo " $a : $b";
?>
Les nombres à virgule flottante
 Les nombres décimaux (connus aussi sous le
vocable de " double ", " float " ou " nombre
rééls ")
 peuvent être spécifiés en utilisant la syntaxe
dans l’exemple suivante :
<?php
$a = 1.234;
$b = 1.2e3;
$c = 7E−10;
?>
Les chaînes de caractères
 Les chaînes de caractères sont des
séquences de caractères.
 Une chaîne peut être spécifiée de trois
manières différentes :
 guillemets simples
 guillemets doubles
Guillemets simples
<?php
echo 'Ceci est une chaîne simple';
echo 'Arnold a coutume de dire : "I'll be back"';
// affiche tel que : "I'll be back"
echo 'Etes−vous sûr de vouloir effacer le dossier
C:*.*?';
// affiche : tel que
echo 'Les variables ne seront pas $afficher $ici';
Guillemets doubles
 $ch=" bonjour ";
 Conséquence:
 Pour spécifier un guillemet simple littéral, vous
devez l'échapper avec un anti−slash (  ),
 Si un anti−slash doit apparaître dans votre chaîne
ou bien en fin de chaîne, il faudra le doubler.
 Exemple:
$str="salut les "amis,"n ca va aujourd’hui ? " ;
echo "$str";
Traitement des variables dans les
chaînes
 Les chaînes peuvent être concaténées avec
l’opérateur ’.’ (point). Notez que l’opérateur ’+’
(addition) ne fonctionnera pas.
 Exemple 1:
<?php
$boisson = 'limonade';
echo "Du $boisson, du pain et du fromage!";
// Correct
echo 'Il a goûté plusieurs ' . $boissons; // correct
echo "Il a goûté plusieurs $boissons"; // Correct
?>
Intégration du php dans une page
hrml
<html>
<body>
<font size="2" face="Arial">Le texte en HTML</font>
<?php
$chaine ="bonjour en php ";
print("<font size="2" face="Arial"> et celui en PHP.</font>");
?>
<br><font size="2" face="Arial"> <?php echo $chaine ; ?>.</font>
</body>
</html>
Les structures de contrôle PHP
 Les opérateurs de comparaisons
 Les opérateurs logiques
 if/else/elseif
 while / do...while
 for
 switch
Opérateurs de Comparaison
 Ils permettent de comparer les valeurs de deux variables.
exemple : Ici $a et $b sont du même type de variable.
Opérateur Exemple Résultat
== $a == $b vrai si $a est égal à $b
!= $a != $b vrai si $a est différent de $b
< $a < $b vrai si $a est inférieur $b
> $a > $b vrai si $a est supérieur $b
<= $a <= $b vrai si $a est inférieur ou égal à $b
>= $a >= $b vrai si $a est supérieur ou égal à $b
30
Opérateurs Logiques
 Ils permettent de combiner plusieurs tests entre eux.
exemple: Ici $a et $b peuvent prendre les valeurs
booléennes vrai ou faux.
Exemple opérateur Résultat
and ( && ) $a and $b vrai si $a et $b sont vrai
$a && $b tous les deux
or ( || ) $a or $b vrai si $a est vrai ou $b
$a || $b est vrai, ou encore si $a
et $b sont vrai tous les
deux
not ( ! ) not $a vrai si $a est faux !$a
31
Les structures de contrôle PHP
32
 Ces instructions sont à la base de tout langage de
programmation
 Elles permettent d'effectuer des tests et des
boucles indispensables au traitement des données
 Instruction de condition
 Instruction de répétition
 Instruction de choix,…
if / else / elseif
33
 Permet d'effectuer un traitement si une condition
est remplie.
 Exemple :
if ($val==1)
{
echo "1";
}
if / else / elseif
34
 On peut aussi effectuer un traitement si la
condition n'est pas remplie.
Ex :
if ($val==1)
{ echo "instruction 1"; }
else
{
echo "instruction 0";
}
if / else / elseif
35
 Mais si la condition n'a pas que deux cas
possibles, on peut ajouter un autre test.
if ($val==1)
{ echo "instruction 1"; }
elseif ($valeur==2)
{ echo "2"; }
else
{
echo "instruction 0";
}
Syntaxe alternative
 Le PHP propose une autre manière de
rassembler des instructions à l’intérieur d’un bloc,
pour les fonctions de contrôle if, while, for, et
switch.
 Dans chaque cas, le principe est de remplacer
l’accolade d’ouverture par deux points (:) et
l’accolade de fermeture par, respectivement,
endif;, endwhile;, endfor;, ou endswitch;.
<?php if ($a == 5):
Echo “A vaut 5”;
endif;
?>
Syntaxe alternative
<?php
if ($a == 5):
print "a égale 5";
print "...";
elseif ($a == 6):
print "a égale 6";
print "!!!";
else:
print "a ne vaut ni 5 ni 6";
endif;
?>
Exercice :
 Écrire un programme qui permet de dire si un
nombre est pair ou impair
<?php
$N=6;
If($N%2==0)
print "$N est pair";
else
print "$N est impair";
?>
Exercice :
 Ecrire un script :
 qui permet d’afficher la chaîne « la couleur
préféré est rouge » ou chaîne « la couleur
préférée est bleue » selon que la variable
$nom soit égale à « fille » ou à « garçon » et
que $age soit inférieur ou supérieur à 12
 Afficher la chaîne dans la couleur considérée (
bleu ou rouge).
Corrigé
<?php
$nom="fille";
$age= 10;
If($nom=="fille" && $age< 12)
print " la couleur préféré est les rouge";
Elseif ($nom=="garcon" && $age< 12)
print " la couleur préféré est le bleu";
?>
Corrigé
<html>
…
<?php
$nom="fille";
$age= 10;
If($nom=="fille" && $age< 12)
print " <font color="red"> la couleur préféré est les rouge</font>";
Elseif ($nom=="garcon" && $age< 12)
print " <font color="blue"> la couleur préféré est le bleu";
?>
while / do...while
42
 Effectue un traitement tant qu'une condition
n'est pas remplie.
while (condition) (Instructions)
do (instructions) while (condition)
 Dans do...while, le traitement est toujours
effectué une fois même si la condition n’est pas
remplie.
Exemple
43
Afficher les nombres inferieurs stricts à 10.
<?php
$valeur=0;
while ($valeur<10)
{ echo $valeur;
$valeur++;
}
$valeur=0;
do
{ echo $valeur;
$valeur++;
}
while ($valeur<10);
?>
for
44
 Tout comme l'instruction while, for effectue un
traitement tant qu'une condition n'est pas
remplie.
 Mais elle intègre le paramétrage de la boucle
 C'est-à-dire que l'instruction permet de définir
l'initialisation des variables, la condition de fin
de boucle et le traitement effectué à chaque
itération.
for
45
Exemple : Afficher les nombres inferieurs stricts
à 10.
for ($indice=0;$indice<10;$indice++)
{
echo $indice;
}
Exercices
 Ecrire un programme qui permet de calculer le
factoriel d’un nombre
 Lister tous les nombre premiers inférieurs à un
nombre N
switch
47
 Cette instruction remplace une suite de tests if
 Permet de comparer une variable avec
plusieurs valeurs possibles et d'effectuer un
traitement en conséquence.
switch
48
Afficher les nombres inferieurs stricts à 10.
switch ($choix)
{ case 1:
echo "La valeur est 1";
break;
case 2:
echo "La valeur est 2";
break;
case 3:
echo "La valeur est 3";
break; }
Exercice :
1. Déclarer la variable $jour et lui affecter le
nom d’un jour en anglais. Ecrire un script qui
selon la valeur de $jour affichera sa
traduction en anglais.
2. Soit 4 images img1.gif …img2.gif. Selon le
choix de l’utilisateur (1,2, 3, 4), écrire un
script qui affichera l’mage correspondante.
break
50
 Cette instruction permet de forcer la sortie d'une
boucle avant que la condition de sortie ne soit
remplie.
 Utilisée surtout dans le switch elle permet de
quitter le test lorsque la valeur est trouvée
51
break
Afficher les entiers plus petits que 5.
<?php
$i = 0;
while ($i < 10) {
if ($i <= 5)
Echo " $i ";
else break;
$i++;
}
52
Exemple avec switch
 break accepte un argument numérique optionnel
qui vous indiquera combien de structures
emboîtées ont été interrompues.
$i = 0;
while ( ++$i ) {
switch ( $i ) {
case 5: echo "à 5<br>n";
break 1;
case 10: echo "à 10; quitting<br>n";
break 2;
Default: break;
}}?>
53
Continue
 L’instruction continue est utilisée dans une
boucle afin d’éluder (ignorer) les instructions de
l’itération courante afin de passer directement à
l’itération suivante.
 continue accepte un argument numérique
optionnel qui vous indiquera combien de
structures emboîtées ont été ignorées.
54
Continue
<?php
$i=1;
while ($i< 10) {
If ($i==5)
{$i++; continue;}//aller à l’iteration suivante
else
{echo $i;
$i++;}
echo " la partie non affiché";
}
?>
Les tableaux
55
 Dans PHP, on retrouve aussi, comme dans
tout autre langage, les structures tableaux.
 La déclaration d'un tableau se fait de la même
manière que la déclaration d'une variable avec
un indice se trouvant entre [ et ].
$liste[0] = 1; // on crée un tableau, et sa
première valeur est 1
 Pour un tableau à deux dimensions:
$matrice[0][0] = 1
Les tableaux
56
 Il n'est pas obligatoire de préciser l'indice pour
affecter une valeur.
$liste[] = 10; // équivaut à $liste[0] = 1;
$liste[] = 11; // équivaut à $liste[1] = 45;
$liste[] = 16; // équivaut à $liste[2] = 6;
 La déclaration et l’initialisation d'un tableau
peuvent également se faire par l'intermédiaire de
la fonction 'array()'.
 Cette fonction permet de préciser les indices ainsi
que les valeurs du tableau (à l'aide de l'opérateur
=>).
$liste[ ] = array(0=>10, 1=>11, 2=>16);
Exercice :
57
Exercice : initialiser un tableau de 10 entiers.
1. Afficher la somme de ses éléments
2. Afficher le maximum de ses éléments
3. Afficher le minimum de ses éléments
4. Trier ce tableau
Corrigé
58
1. Afficher la somme de ses éléments
<?php
$liste[ ] = array(0=>20, 1=>11, 2=>16, 3 =>19, 4=>1, 5=>26,
6=>10, 7=>31, 8=>16, 9=>13);
$som=0;
For($i=0;$i<10; $i++)
$som=$som+liste[$i];
Print" La somme des éléments du tableau est = $som";
?>
corrigé
<?php
$liste[ ] = array(0=>20, 1=>11, 2=>16, 3 =>19, 4=>1, 5=>26,
6=>10, 7=>31, 8=>16, 9=>13);
$max=$liste[0];
For($i=0;$i<10; $i++)
{if(liste[$i]>$max)
$max=liste[$i];
}
Print" Le max est = $max";
?>
60
Les tableaux associatifs
 $a = array(1 => "nom", 2 => "prénom",3=>"age");
Syntaxe: array( [key =>] value , ... )
$a[key] = value;
 $tableau = array('le bon', 'la brute', 'le truand');
$b = array (1, 2, 3, 17);
Syntaxe: array( value1 , ... )
61
Les tableaux Associatif
 Un tableau classique utilise des indices
numériques
 Un tableau associatif peut utiliser comme clé
d’autre types comme les chaine de caractères
$a["couleur"] = "rouge";
$a["saveur"] = "sucrée";
$a["forme"] = "rond";
$a["nom"] = "pomme";
62
Les tableaux
Multidimension
<?php
$a[1] = $f; # tableau à une dimension
$a["foo"] = $f;
$a[1][0] = $f; # tableau à deux dimensions
$a["foo"][2] = $f; # on peut mélanger les
indices associatifs et numériques
$a[3]["bar"] = $f;
$a["foo"][4]["bar"][0] = $f; # tableau à quatre
dimensions
?>
63
Les tableaux Multidimension
 La fonction array() peut être emboîtée pour
remplir un tableau à plusieurs dimensions :
<?php
$a = array(
"pomme" =>
array("couleur" => "rouge","saveur" => "sucrée","forme" => "rond"),
"orange" =>
array("couleur" => "orange","saveur" => "amère","forme" => "rond"),
"banane" =>
array("couleur" => "jaune","saveur" => "paste-y","forme" => "bananoïd")
);
echo $a["pomme"]["saveur"]; # va afficher "sucrée"
64
Parcourt des tableaux
 Les tableaux classiques peuvent être
parcourus facilement en utilisant la clé
numérique
 Pour les tableaux associatif c’est un
peut plus compliqué
65
Parcourt des tableaux
$i = 0;
while ($i < 10) {
Echo "$arr[$i] ";
}
$i++;
}
Les Fonctions
66
 PHP est un langage structuré, les fonctions en
font une partie intégrante puisqu’elles sont la
base d’une programmation claire et efficace.
 Une fonction est une sorte de sous-programme
isolé du reste du code, exécutable à tout moment,
depuis n’importe quelle partie du code principal
ou n’importe quelle autre fonction, par simple
appel.
 De plus, les avantages des fonctions sont :
 La non répétition de la même séquence de code
 Le gain de productivité.
 La meilleure lisibilité du code.
 La maintenance facilitée.
Déclaration
67
 Une fonction est une séquence de code qui peut
remplir n’importe quelle tâche.
 Tout code valide peut figurer dans le corps d’une
fonction.
 Déclaration :
La syntaxe de déclaration s’appuie sur le mot clé
function.
Function nom_fonction(arguments_éventuels)
Fonctions
68
exemple :
function bonjour( ) {
echo " Bonjour ! " ;
}
Bonjour( ) ; // affiche 'bonjour' à l’écran
Fonctions
69
Exemple:
Pour que la fonction retourne un résultat, on utilisera
le mot clé return
function bonjour2( ) {
return " Bonjour !" ;
}
echo bonjour2( ) ;
bonjour affiche le résultat elle-même, alors qu’il faut
afficher le résultat de bonjour2 pour obtenir une
action similaire.
Déclaration, paramètres, valeurs de
retour
70
function lecture($nom, $texte = 'Bonjour') {
if(empty($nom)){ //si $nom est vide
return false;
}else
{
echo "$texte $nom"; // on affiche le texte
return true; // fonction exécutée avec succès
}
}
71
Fonctions liées aux tableaux
associatifs
foreach: Deux syntaxes possibles
<?php
foreach(array_expression as $value) commandes
//La première forme passe en revue le tableau
//array_expression. A chaque itération, la valeur de l’élément
//courant est assigné à $value et le pointeur interne de
//tableau est avancé
foreach(array_expression as $key => $value)
commandes
//La deuxième forme fait exactement la même chose, mais
// c’est la clé de l’élément courant qui est assigné à la
// variable $key.
?>
72
Fonctions liées aux tableaux
associatifs
foreach ($arr as $value) {
echo "Valeur: $value<br>n";
}
foreach ($arr as $key => $value) {
echo "Clé: $key; Valeur: $value<br>n";
}
73
foreach
<?php
/* exemple 1: valeur seule */
$a = array (1, 2, 3, 17);
foreach ($a as $v) {
print "Valeur courante de $a: $vn";
}
/* exemple 1: valeur (avec clé associée) */
$a = array (1, 2, 3, 17);
$i = 0; /* pour affichage seulement*/
foreach($a as $v) {
print "$a[$i] => $v n";
}
?>
74
Foreach
/* exemple 1: valeur et clé */
$a = array (
"un" => 1,
"deux" => 2,
"trois" => 3,
"dix-sept" => 17
);
foreach($a as $k => $v) {
print "$a[$k] => $v.n";
}
?>
Parcourt avec each() et list()
75
 each(..)
 Cette fonction permet de parcourir tous les éléments d'un
tableau sans se soucier de ses bornes.
 Elle retourne la combinaison clé-valeur courante du tableau
passé en paramètre, puis se positionne sur l'élément suivant,
et cela du premier au dernier indice.
 Lorsque la fin du tableau est atteinte, each( ) retourne la
valeur faux (false).
 list(..)
 Associée à la fonction each(), elle permet d'affecter les éléments
du tableau renvoyé par each dans deux valeurs distinctes.
 Reset()
 le pointeur interne de tableau est automatiquement ramené au
premier élément du tableau
76
Fonctions each() et list()
Parcourt avec « reset », « each » et « list »
<?php
$nom["ali"]="rassi";
$nom[" fati"]="Alilo";
$nom[" kamal"]="Dabar";
reset($nom);
while (list($clef,$valeur)=each($nom))
echo "$clef, $valeur<br>";
?>
77
Autres fonctions sur les
tableaux
 La navigation dans les éléments du tableau
s'effectue à l'aide des fonctions next() , prev() et
'each()'.
 Le nombre d'éléments d'un tableau peut être
obtenu à l'aide de la fonction count().
 Le tri des tableaux est facilité par de nombreuses
fonctions : asort(), ksort(), sort(), usort(), etc...
Fonctions each() et list()
78
exemple :
$tableau = array("val1","val2","val3","val4"); //on crée un tableau
while ($var = each($tableau)) {
echo "$var[0] : $var[1]";
}
Ce code produit le résultat suivant :
0 : val1
1 : val2
2 : val3
3 : val4
ici l'indice est affecté au premier élément de $var et la valeur au deuxième
élément $var
Variables d'environnement
79
 L'un des aspects fondamentaux d'une application
construite sur une architecture de type intranet est
l'utilisation des variables d'environnement du
serveur,
 notamment celles du serveur HTTP
 Avec PHP toutes les variables d'environnement
du serveur sont automatiquement reprises dans
les scripts PHP en tant que variables globales.
 Ainsi il suffit de les utiliser directement dans le
code.
80
Fonctions liées aux variables
d'environnement
 Accès aux éléments du Tableau $_SERVER
$IP=$_SERVER['REMOTE_ADDR']
echo $IP; @ IP de la machine cliente
 La fonction phpinfo() affiche toute seule un tableau
récapitulatif :
 des paramètres du serveur
 et de l'interpréteur PHP,
<?php phpinfo(); ?>
 PHP fournit la fonction getenv() permettant de retourner la
valeur de la variable d'environnement passée en
paramètre:
<?php echo getenv("HTTP_USER_AGENT"); ?>
Exemples de variables
d’environnement81
 SERVER_SOFTWARE :Chaîne d'identification du serveur, qui est
données dans les entêtes lors de la réponse aux requêtes.
 PHP_SELF : Le nom du fichier du script en cour d'exécution, par
rapport au document root.
 DOCUMENT_ROOT : La racine sous laquelle le script courant est
exécuté, comme défini dans la configuration du serveur.
 REMOTE_ADDR : L'adresse IP du client qui demande la page
courante.
 REMOTE_PORT :Le port utilisé par la machine cliente pour
communiquer avec le serveur web.
 SCRIPT_FILENAME : Le chemin absolu jusqu'au script courant.
 SERVER_PORT : Le port de la machine serveur utilisé pour les
communications. Par défaut, c'est '80'. En utilisant SSL, par exemple,
il sera remplacé par le numéro de port HTTP sécurisé.
 REQUEST_URI : L'URI qui a été fourni pour accéder à cette page
Exercice :
1. Ecrire un programme qui permet d’afficher
les variables d’environnement suivantes
$HTTP_HOST, $SERVER_ADDR,
$SERVER_, $SERVER_NAME,
$SERVER_PORT et la valeur
correspondante
Variables issues de formulaires
83
 Les variables sont issues de formulaires HTML
 Elles correspondent aux différents champs
positionnés entre les balises <FORM> et
</FORM> de ce formulaire.
 La page qui reçoit ces variables est celle qui est
désignée par l'attribut ACTION de la balise
<FORM>.
 exemple :
<HTML>
<FORM ACTION="test.php" METHOD=POST>
Nom : <INPUT TYPE=text NAME="nom">
<INPUT TYPE=submit VALUE="Envoyer">
</FORM></HTML>
Variables issues de formulaires
84
<?php
$NOM=$_POST['nom'];
echo $NOM;
?>
Fonction empty et isset
 Les deux fonctions testent les variables et il y
a souvent une confusion entre eux
bool emtpy(mixed var) retourne FALSE si var
à une valeur non vide et différente de zéro.
bool isset(mixed var) renvoie TRUE si la
variable var est définie, FALSE sinon.
Fonction empty et isset
 La confusion vient de la définition d'une chaîne vide :
 "" (une chaîne vide)
 0 (0 en tant qu’entier)
 "0" (0 en tant que chaîne de caractères)
 NULL
 FALSE
 array() (un tableau vide)
 var $var ; (une variable déclarée, mais sans valeur dans une classe)
 Exemple:
<?php
$var = 0;
if (empty($var)) {// Evalué à vrai car $var est vide
echo '$var vaut soit 0, vide, ou pas définie du tout';
}
if (isset($var)) {// Evalué à vrai car $var est défini
echo '$var est définie même si elle est vide';
}
?>
Fonctions include - require
 Les deux fonctions include et require
permettent d'insérer dans un script le code
contenu dans un autre fichier.
<?php include "phrase.txt";?>
 On peut l’intégrer dans n’importe quelle page
d’un site
 On peut tout aussi bien insérer du code PHP.
Différence entre require et
include
 Les includes sont conditionnels.
 Ils peuvent être placés dans une condition IF ou bien
dans une boucle FOR, WHILE...
 Les requires sont nécessaires et devrait donc
se trouver toujours en début de script.
 C'est généralement un require() que l'on devrait
utiliser (pour tout ce qui est librairies ou paramètres
globaux).
 Bien souvent il est conseillé d'utiliser
require_once() et include_once() à la place.
 Le différence avec leur homologue est que le
fichier ne sera inclu qu'une seule fois quoi qu'il
Fonctions include - require
 ex : <?php include "phrase.php";?>
 Où le contenu du fichier phrase.php serait :
<?php
$phrase="Phrase du jour";
print("La phrase du jour est : ");
print($phrase);
?>
 L'utilisation la plus courante de ces fonctions est
par exemple:
 l'inclusion des en-têtes
 des menus
 des bas de page qui sont présents sur toutes les
pages du site.
Fonction include
 Par exemple, si on ne veut pas utiliser de
"frames", qui sont source de conflit avec
certains navigateurs, on est obligé de remettre
le menu sur chaque page.
 Avec une inclusion PHP, il suffit de définir le
menu dans un fichier et de l'appeler sur chaque
page.
 Ensuite lors d'une modification du menu, un
seul fichier est à modifier pour mettre à jour le
site entier.
 Cette manière de procéder prend toute son
Include : Passage de variables
 Le contenu du fichier "inclus" est ajouté directement au
script principal.
 Les variables sont donc accessibles aussi bien à partir du
script qu'à partir du fichier.
 ex : <?php $phrase="Phrase du jour"; include
"phrase.php";?>
 Le fichier "phrase.php" peut donc interpréter la valeur de
la variable "$phrase".
 Contenu du fichier "phrase.php" :
<?php
print("La phrase du jour est : ");
print($phrase);
Passage par valeur & référence
92
 Le passage des paramètres tel qu’on l’a vu
précédemment est ce que l’on appelle le passage par
valeur.
 Il existe une autre manière de procéder :le passage par
référence.
 On passe à la fonction la référence (adresse mémoire)
d’une variable existante, et la fonction modifie
directement la valeur de cette variable.
Passage par valeur & référence
93
function bonjour(&$phrase) {
$phrase= " bonjour " ;
}
$chaine = " Phrase qui va disparaître " ;
bonjour($chaine) ;
echo $chaine ; // affiche "bonjour" à l’écran
Fonctions Mathématiques
94
 Elles y sont toutes !
 Abs, cos, sin, tan, sqrt, exp, …
 pi( )
Chaînes de caractères
95
 strpos (chaîne, sous chaîne) : retourne la position de la sous chaîne dans la
chaîne. Dans le cas où la chaîne existe en plusieurs exemplaires, c’est la
position de la première occurrence qui est retournée.
 strrpos retourne quand à elle la position de la dernière occurrence.
 strstr (chaîne, sous chaîne) retourne la portion de la chaîne à partir de la
première occurrence de la sous chaîne.
 strlen (chaîne) : retourne la taille de la chaîne.
 strtolower|strtoupper (chaîne) : retourne la chaîne passée en paramètres an
minuscules (resp. majuscules).
 str_replace (car d’origine, car de destination, chaîne) : remplace le
caractère d’origine par le caractère de destination dans la chaîne.
 g supprime les caractères invisibles (espaces,n, …) au début et à la fin de la
chaîne.
 ereg(chaîne à chercher, chaîne) : retourne vrai si la chaîne à chercher (sous
forme de chaîne ou sous forme d’expression régulière) est contenue dans
chaîne.
Fonction date
96
 La fonction date permet de décrire une date en
retournant une chaîne de caractères sous le format
désiré.
 Cette date est exprimée en fonction du timestamp qui
est le nombre de secondes écoulé depuis le 1
Janvier 1970 (époque UNIX).
 Syntaxe : Chaîne date(entier format, entier
timestamp)
 L'argument timestamp est optionnel, s'il est vide,
l'heure et la date courante seront utilisées.
 Exemple:
echo date("d-m-Y"); // affiche : "12-12-2000"
97
Fonction date
<?php
$date_du_jour = date ("d-m-Y");
$heure_courante = date ("H:i");
echo 'Nous sommes le : ';
echo $date_du_jour;
echo ' Et il est : ';
echo $heure_courante;
?>
98
Fonction date
 Voici la liste des paramètres possibles pour la fonction date() :
- a : "am" (matin) ou "pm" (après-midi)
- A : "AM" (matin) ou "PM" (après-midi)
- d : Jour du mois, sur deux chiffres (éventuellement avec un zéros) : "01" à
"31"
- D : Jour de la semaine, en trois lettres (et en anglais) : par exemple "Fri"
(pour Vendredi)
- F : Mois, textuel, version longue; en anglais, i.e. "January" (pour Janvier)
- h : Heure, au format 12h, "01" à "12"
- H : heure, au format 24h, "00" à "23"
- g : Heure, au format 12h sans les zéros initiaux, "1" à "12"
- G : Heure, au format 24h sans les zéros initiaux, "0" à "23"
- i : Minutes; "00" à "59"
- j : Jour du mois sans les zéros initiaux: "1" à "31"
- l : Jour de la semaine, textuel, version longue; en anglais, i.e. "Friday"
(pour Vendredi)
- L : Booléen pour savoir si l'année est bissextile ("1") ou pas ("0")
- m : Mois; i.e. "01" à "12"
- n : Mois sans les zéros initiaux; i.e. "1" à "12"
- M : Mois, en trois lettres (et en anglais) : par exemple "Jan" (pour Janvier)
- s : Secondes; i.e. "00" à "59"
- S : Suffixe ordinal d'un nom
Gestion des fichiers
99
 La fonction de base est la fonction fopen( ).
 C'est elle qui permet d'ouvrir un fichier, que ce
soit pour le lire, le créer, ou y écrire.
 Sa syntaxe est :
entier fopen(chaine nomdufichier, chaine
mode);
Gestion des fichiers
100
Différents modes disponibles
r : ouverture en lecture seulement
w : ouverture en écriture seulement (la fonction crée le fichier s'il
n'existe pas)
a : ouverture en écriture seulement avec ajout du contenu à la fin du
fichier (la fonction crée le fichier s'il n'existe pas)
r+ : ouverture en lecture et écriture
w+ : ouverture en lecture et écriture (la fonction crée le fichier s'il
n'existe pas)
a+ : ouverture en lecture et écriture avec ajout du contenu à la fin du
fichier (la fonction crée le fichier s'il n'existe pas).
Gestion des fichiers
101
Exemples :
$fp = fopen("fichier.txt","r"); //lecture
$fp = fopen(" fichier.txt ","w");
//écriture depuis début du fichier
$fp = fopen("fichier.txt","a");
//écriture depuis fin du fichier
Lecture dans un fichier
102
< ?php
$monfichier = fopen("monfichier.txt", "r") ; // ouverture en
lecture
if ( !($monfichier)) {
print(" Impossible d’ouvrir le fichier ") ;
exit ;}
while ( !feof($monfichier) ) {
$ligne = fgets($monfichier,255); // 255 caractères max. ou
bien fin de ligne.
echo " $ligne <BR>" ;
}
fclose ($monfichier) ;?>
Écriture dans un fichier
103
< ?
$monFichier = fopen("monfichier.txt",’ "w") ; // ouverture en
écriture
if ( !($monfichier)) {
print(‘’ Impossible de créer le fichier n’’) ;
exit ;
}
fputs($monfichier, "ligne 1") ; // on écrit deux lignes
fputs($monfichier, "ligne 2") ;
fclose($monfichier) ; // on ferme le fichier, on libère les
ressources
Fonction Explode
104
 Il est fréquent d’avoir des fichiers contenant
différents champs séparés par un délimiteur
quelconque.
 Une fonction très utile dans ces cas là est la
fonction explode.
 Sa syntaxe est la suivante
explode ("caractère délimiteur", chaîne de donnée)
Fonction Explode
105
<?php
if (!file_exists(« test.txt »)) {
print "<H3><BR>Erreur, fichier compteur manquant<BR>";
exit;
} else {
$fd = fopen($fic,"r");
while (!feof($fd)) {
$ligne = fgets($fd,255);
$tab=explode("|",$ligne);
print "Nom : $tab[0]<br>";
print "Prénom : $tab[1]<br>";
print "Age : $tab[2]<br>« ;}
fclose($fd);
}?>

Contenu connexe

Tendances

PHP #1 : introduction
PHP #1 : introductionPHP #1 : introduction
PHP #1 : introduction
Jean Michel
 
VIM puissance PHP = VI Improved !
VIM puissance PHP = VI Improved !VIM puissance PHP = VI Improved !
VIM puissance PHP = VI Improved !
Frederic Hardy
 
Le langage C
Le langage CLe langage C
Le langage C
Bruno Delb
 
Réalisation d’un interpréteur en langue Arabe - Khawarizmi
Réalisation d’un interpréteur en langue Arabe - KhawarizmiRéalisation d’un interpréteur en langue Arabe - Khawarizmi
Réalisation d’un interpréteur en langue Arabe - Khawarizmi
Bachir Benyammi
 
PHP 7.0 : aperçu des nouveautés
PHP 7.0 : aperçu des nouveautésPHP 7.0 : aperçu des nouveautés
PHP 7.0 : aperçu des nouveautés
Didcode
 
Introduction au langage PHP (1ere partie) élaborée par Marouan OMEZZINE
Introduction au langage PHP (1ere partie) élaborée par Marouan OMEZZINEIntroduction au langage PHP (1ere partie) élaborée par Marouan OMEZZINE
Introduction au langage PHP (1ere partie) élaborée par Marouan OMEZZINE
Marouan OMEZZINE
 
Introduction a la compilation Aperçu de la compilation / Assembleur MIPS - C1
Introduction a la compilation  Aperçu de la compilation / Assembleur MIPS - C1Introduction a la compilation  Aperçu de la compilation / Assembleur MIPS - C1
Introduction a la compilation Aperçu de la compilation / Assembleur MIPS - C1
Beligh HAMDI
 
PHP 1 - Apprendre les bases
PHP 1 - Apprendre les basesPHP 1 - Apprendre les bases
PHP 1 - Apprendre les bases
Pierre Faure
 
Cours de c
Cours de cCours de c
Cours de c
Nada Riahi
 
Cours langage-c
Cours langage-cCours langage-c
Cours langage-c
Ahmed MSAFRI
 
Cours structures des données (langage c)
Cours structures des données (langage c)Cours structures des données (langage c)
Cours structures des données (langage c)
rezgui mohamed
 
Cours java script
Cours java scriptCours java script
Cours java script
AdelThaljaoui
 
Chap1: Cours en C++
Chap1: Cours en C++Chap1: Cours en C++
Chap1: Cours en C++
Aziz Darouichi
 
AlterWay SolutionsLinux Outils Industrialisation PHP
AlterWay SolutionsLinux Outils Industrialisation PHPAlterWay SolutionsLinux Outils Industrialisation PHP
AlterWay SolutionsLinux Outils Industrialisation PHP
julien pauli
 
Langage C
Langage CLangage C
Langage C
mohamednacim
 
Programmation en C
Programmation en CProgrammation en C
Programmation en C
Youness Boukouchi
 

Tendances (20)

PHP #1 : introduction
PHP #1 : introductionPHP #1 : introduction
PHP #1 : introduction
 
VIM puissance PHP = VI Improved !
VIM puissance PHP = VI Improved !VIM puissance PHP = VI Improved !
VIM puissance PHP = VI Improved !
 
Generalites
GeneralitesGeneralites
Generalites
 
Le langage C
Le langage CLe langage C
Le langage C
 
Le langage C
Le langage CLe langage C
Le langage C
 
Réalisation d’un interpréteur en langue Arabe - Khawarizmi
Réalisation d’un interpréteur en langue Arabe - KhawarizmiRéalisation d’un interpréteur en langue Arabe - Khawarizmi
Réalisation d’un interpréteur en langue Arabe - Khawarizmi
 
PHP 7.0 : aperçu des nouveautés
PHP 7.0 : aperçu des nouveautésPHP 7.0 : aperçu des nouveautés
PHP 7.0 : aperçu des nouveautés
 
Introduction au langage PHP (1ere partie) élaborée par Marouan OMEZZINE
Introduction au langage PHP (1ere partie) élaborée par Marouan OMEZZINEIntroduction au langage PHP (1ere partie) élaborée par Marouan OMEZZINE
Introduction au langage PHP (1ere partie) élaborée par Marouan OMEZZINE
 
Introduction a la compilation Aperçu de la compilation / Assembleur MIPS - C1
Introduction a la compilation  Aperçu de la compilation / Assembleur MIPS - C1Introduction a la compilation  Aperçu de la compilation / Assembleur MIPS - C1
Introduction a la compilation Aperçu de la compilation / Assembleur MIPS - C1
 
PHP 1 - Apprendre les bases
PHP 1 - Apprendre les basesPHP 1 - Apprendre les bases
PHP 1 - Apprendre les bases
 
Cours de c
Cours de cCours de c
Cours de c
 
Cours langage-c
Cours langage-cCours langage-c
Cours langage-c
 
Cours structures des données (langage c)
Cours structures des données (langage c)Cours structures des données (langage c)
Cours structures des données (langage c)
 
Formation php 1
Formation php 1Formation php 1
Formation php 1
 
Forma php
Forma phpForma php
Forma php
 
Cours java script
Cours java scriptCours java script
Cours java script
 
Chap1: Cours en C++
Chap1: Cours en C++Chap1: Cours en C++
Chap1: Cours en C++
 
AlterWay SolutionsLinux Outils Industrialisation PHP
AlterWay SolutionsLinux Outils Industrialisation PHPAlterWay SolutionsLinux Outils Industrialisation PHP
AlterWay SolutionsLinux Outils Industrialisation PHP
 
Langage C
Langage CLangage C
Langage C
 
Programmation en C
Programmation en CProgrammation en C
Programmation en C
 

Similaire à Initiation au langage PHP

PHP mysql Xml.doc
PHP mysql Xml.docPHP mysql Xml.doc
PHP mysql Xml.doc
GroupeExcelMarrakech
 
Php_Mysql.pdf
Php_Mysql.pdfPhp_Mysql.pdf
Php_Mysql.pdf
ETTAMRY
 
chapitre 4-PHP5 module web part2 (1).pdf
chapitre 4-PHP5 module web part2 (1).pdfchapitre 4-PHP5 module web part2 (1).pdf
chapitre 4-PHP5 module web part2 (1).pdf
imaneeaouattahee
 
Cours php -partie 1.pdf
Cours php -partie 1.pdfCours php -partie 1.pdf
Cours php -partie 1.pdf
ssuserc46a93
 
0519-pdf-php-bases-initiation.pdf
0519-pdf-php-bases-initiation.pdf0519-pdf-php-bases-initiation.pdf
0519-pdf-php-bases-initiation.pdf
RihabBENLAMINE
 
seance4-1 php.ppt
seance4-1 php.pptseance4-1 php.ppt
seance4-1 php.ppt
AmineReal
 
PHP (Partie I) Par Mahdi Ben Alaya
PHP (Partie I) Par Mahdi Ben AlayaPHP (Partie I) Par Mahdi Ben Alaya
PHP (Partie I) Par Mahdi Ben Alaya
Mahdi Ben Alaya
 
cours-gratuit.com--CoursPhp-id1055.ppt
cours-gratuit.com--CoursPhp-id1055.pptcours-gratuit.com--CoursPhp-id1055.ppt
cours-gratuit.com--CoursPhp-id1055.ppt
GroupeExcelMarrakech
 
Cours3-PHPfgdwfwdffhddfbwdfwdfwdfwdfwfw.pdf
Cours3-PHPfgdwfwdffhddfbwdfwdfwdfwdfwfw.pdfCours3-PHPfgdwfwdffhddfbwdfwdfwdfwdfwfw.pdf
Cours3-PHPfgdwfwdffhddfbwdfwdfwdfwdfwfw.pdf
RihabBENLAMINE
 
Developpement web dynamique_Base de donnees.pdf
Developpement web dynamique_Base de donnees.pdfDeveloppement web dynamique_Base de donnees.pdf
Developpement web dynamique_Base de donnees.pdf
rachidimstapha
 
Développement Web- PHP (partie I).pdf
Développement Web- PHP (partie I).pdfDéveloppement Web- PHP (partie I).pdf
Développement Web- PHP (partie I).pdf
YasushiTsubakik
 
Nouveautés php 7
Nouveautés php 7Nouveautés php 7
Nouveautés php 7
Cyrille Grandval
 
La première partie de la présentation PHP
La première partie de la présentation PHPLa première partie de la présentation PHP
La première partie de la présentation PHP
Club Scientifique de l'ESI - CSE
 
hassclic270.ppt
hassclic270.ppthassclic270.ppt
hassclic270.ppt
adiouf2
 
Les principes de base de PHP
 Les principes de base de PHP  Les principes de base de PHP
Les principes de base de PHP
EL JAOUARI Ahmed
 
Php cours
Php coursPhp cours
Php cours
funinformatique
 
Php4 Mysql
Php4 MysqlPhp4 Mysql
Php4 Mysql
HamdiBaklouti
 
Migration PHP4-PHP5
Migration PHP4-PHP5Migration PHP4-PHP5
Migration PHP4-PHP5
julien pauli
 

Similaire à Initiation au langage PHP (20)

PHP mysql Xml.doc
PHP mysql Xml.docPHP mysql Xml.doc
PHP mysql Xml.doc
 
Php_Mysql.pdf
Php_Mysql.pdfPhp_Mysql.pdf
Php_Mysql.pdf
 
chapitre 4-PHP5 module web part2 (1).pdf
chapitre 4-PHP5 module web part2 (1).pdfchapitre 4-PHP5 module web part2 (1).pdf
chapitre 4-PHP5 module web part2 (1).pdf
 
Cours php -partie 1.pdf
Cours php -partie 1.pdfCours php -partie 1.pdf
Cours php -partie 1.pdf
 
0519-pdf-php-bases-initiation.pdf
0519-pdf-php-bases-initiation.pdf0519-pdf-php-bases-initiation.pdf
0519-pdf-php-bases-initiation.pdf
 
seance4-1 php.ppt
seance4-1 php.pptseance4-1 php.ppt
seance4-1 php.ppt
 
PHP (Partie I) Par Mahdi Ben Alaya
PHP (Partie I) Par Mahdi Ben AlayaPHP (Partie I) Par Mahdi Ben Alaya
PHP (Partie I) Par Mahdi Ben Alaya
 
Formation php 1
Formation php 1Formation php 1
Formation php 1
 
cours-gratuit.com--CoursPhp-id1055.ppt
cours-gratuit.com--CoursPhp-id1055.pptcours-gratuit.com--CoursPhp-id1055.ppt
cours-gratuit.com--CoursPhp-id1055.ppt
 
Cours3-PHPfgdwfwdffhddfbwdfwdfwdfwdfwfw.pdf
Cours3-PHPfgdwfwdffhddfbwdfwdfwdfwdfwfw.pdfCours3-PHPfgdwfwdffhddfbwdfwdfwdfwdfwfw.pdf
Cours3-PHPfgdwfwdffhddfbwdfwdfwdfwdfwfw.pdf
 
Developpement web dynamique_Base de donnees.pdf
Developpement web dynamique_Base de donnees.pdfDeveloppement web dynamique_Base de donnees.pdf
Developpement web dynamique_Base de donnees.pdf
 
Php
PhpPhp
Php
 
Développement Web- PHP (partie I).pdf
Développement Web- PHP (partie I).pdfDéveloppement Web- PHP (partie I).pdf
Développement Web- PHP (partie I).pdf
 
Nouveautés php 7
Nouveautés php 7Nouveautés php 7
Nouveautés php 7
 
La première partie de la présentation PHP
La première partie de la présentation PHPLa première partie de la présentation PHP
La première partie de la présentation PHP
 
hassclic270.ppt
hassclic270.ppthassclic270.ppt
hassclic270.ppt
 
Les principes de base de PHP
 Les principes de base de PHP  Les principes de base de PHP
Les principes de base de PHP
 
Php cours
Php coursPhp cours
Php cours
 
Php4 Mysql
Php4 MysqlPhp4 Mysql
Php4 Mysql
 
Migration PHP4-PHP5
Migration PHP4-PHP5Migration PHP4-PHP5
Migration PHP4-PHP5
 

Dernier

Procédure consignation Lock Out Tag Out.pptx
Procédure consignation  Lock Out Tag Out.pptxProcédure consignation  Lock Out Tag Out.pptx
Procédure consignation Lock Out Tag Out.pptx
caggoune66
 
Burkina Faso library newsletter May 2024
Burkina Faso library newsletter May 2024Burkina Faso library newsletter May 2024
Burkina Faso library newsletter May 2024
Friends of African Village Libraries
 
Conseils pour Les Jeunes | Conseils de La Vie| Conseil de La Jeunesse
Conseils pour Les Jeunes | Conseils de La Vie| Conseil de La JeunesseConseils pour Les Jeunes | Conseils de La Vie| Conseil de La Jeunesse
Conseils pour Les Jeunes | Conseils de La Vie| Conseil de La Jeunesse
Oscar Smith
 
Iris van Herpen. pptx
Iris         van        Herpen.      pptxIris         van        Herpen.      pptx
Iris van Herpen. pptx
Txaruka
 
Formation M2i - Onboarding réussi - les clés pour intégrer efficacement vos n...
Formation M2i - Onboarding réussi - les clés pour intégrer efficacement vos n...Formation M2i - Onboarding réussi - les clés pour intégrer efficacement vos n...
Formation M2i - Onboarding réussi - les clés pour intégrer efficacement vos n...
M2i Formation
 
Iris et les hommes.pptx
Iris      et         les      hommes.pptxIris      et         les      hommes.pptx
Iris et les hommes.pptx
Txaruka
 
Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...
Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...
Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...
cristionobedi
 
Impact des Critères Environnementaux, Sociaux et de Gouvernance (ESG) sur les...
Impact des Critères Environnementaux, Sociaux et de Gouvernance (ESG) sur les...Impact des Critères Environnementaux, Sociaux et de Gouvernance (ESG) sur les...
Impact des Critères Environnementaux, Sociaux et de Gouvernance (ESG) sur les...
mrelmejri
 
Cycle de Formation Théâtrale 2024 / 2025
Cycle de Formation Théâtrale 2024 / 2025Cycle de Formation Théâtrale 2024 / 2025
Cycle de Formation Théâtrale 2024 / 2025
Billy DEYLORD
 
Iris van Herpen. pptx
Iris            van        Herpen.     pptxIris            van        Herpen.     pptx
Iris van Herpen. pptx
Txaruka
 
Edito-B1-francais Manuel to learning.pdf
Edito-B1-francais Manuel to learning.pdfEdito-B1-francais Manuel to learning.pdf
Edito-B1-francais Manuel to learning.pdf
WarlockeTamagafk
 
Iris van Herpen. pptx
Iris         van         Herpen.      pptxIris         van         Herpen.      pptx
Iris van Herpen. pptx
Txaruka
 
Newsletter SPW Agriculture en province du Luxembourg du 12-06-24
Newsletter SPW Agriculture en province du Luxembourg du 12-06-24Newsletter SPW Agriculture en province du Luxembourg du 12-06-24
Newsletter SPW Agriculture en province du Luxembourg du 12-06-24
BenotGeorges3
 

Dernier (13)

Procédure consignation Lock Out Tag Out.pptx
Procédure consignation  Lock Out Tag Out.pptxProcédure consignation  Lock Out Tag Out.pptx
Procédure consignation Lock Out Tag Out.pptx
 
Burkina Faso library newsletter May 2024
Burkina Faso library newsletter May 2024Burkina Faso library newsletter May 2024
Burkina Faso library newsletter May 2024
 
Conseils pour Les Jeunes | Conseils de La Vie| Conseil de La Jeunesse
Conseils pour Les Jeunes | Conseils de La Vie| Conseil de La JeunesseConseils pour Les Jeunes | Conseils de La Vie| Conseil de La Jeunesse
Conseils pour Les Jeunes | Conseils de La Vie| Conseil de La Jeunesse
 
Iris van Herpen. pptx
Iris         van        Herpen.      pptxIris         van        Herpen.      pptx
Iris van Herpen. pptx
 
Formation M2i - Onboarding réussi - les clés pour intégrer efficacement vos n...
Formation M2i - Onboarding réussi - les clés pour intégrer efficacement vos n...Formation M2i - Onboarding réussi - les clés pour intégrer efficacement vos n...
Formation M2i - Onboarding réussi - les clés pour intégrer efficacement vos n...
 
Iris et les hommes.pptx
Iris      et         les      hommes.pptxIris      et         les      hommes.pptx
Iris et les hommes.pptx
 
Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...
Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...
Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...
 
Impact des Critères Environnementaux, Sociaux et de Gouvernance (ESG) sur les...
Impact des Critères Environnementaux, Sociaux et de Gouvernance (ESG) sur les...Impact des Critères Environnementaux, Sociaux et de Gouvernance (ESG) sur les...
Impact des Critères Environnementaux, Sociaux et de Gouvernance (ESG) sur les...
 
Cycle de Formation Théâtrale 2024 / 2025
Cycle de Formation Théâtrale 2024 / 2025Cycle de Formation Théâtrale 2024 / 2025
Cycle de Formation Théâtrale 2024 / 2025
 
Iris van Herpen. pptx
Iris            van        Herpen.     pptxIris            van        Herpen.     pptx
Iris van Herpen. pptx
 
Edito-B1-francais Manuel to learning.pdf
Edito-B1-francais Manuel to learning.pdfEdito-B1-francais Manuel to learning.pdf
Edito-B1-francais Manuel to learning.pdf
 
Iris van Herpen. pptx
Iris         van         Herpen.      pptxIris         van         Herpen.      pptx
Iris van Herpen. pptx
 
Newsletter SPW Agriculture en province du Luxembourg du 12-06-24
Newsletter SPW Agriculture en province du Luxembourg du 12-06-24Newsletter SPW Agriculture en province du Luxembourg du 12-06-24
Newsletter SPW Agriculture en province du Luxembourg du 12-06-24
 

Initiation au langage PHP

  • 1. Initiation au langage PHP Hypertext Preprocessor Pr. Benabbou Faouzia Laboratoire de Technologie d’Information et Modélisation Université Hassan II Mohammedia-Casablanca Faculté des sciences ben M'sik Septembre 2015
  • 2. Plan 2  Introduction  Définition de PHP  Les variables  Les constantes  Les tableaux  Les opérateurs  Les structures de contrôle PHP  Les fonctions  Gestion des fichier
  • 3. Langages du Web 3  Code qui s’exécute côté client HTML HyperText Markup Language JAVASCRIPT APPLET JAVA  Code qui s’exécute côté serveur  PHP  ASP  CGI,…  Code qui s’exécute côté client ou serveur
  • 4. PHP 4  PHP est un langage de programmation spécialisé dans la génération de code, dont le langage cible est le HTML.  Le PHP permet de réaliser des sites Internet dynamique.  PHP est un disponible dans plusieurs environnements, tels que le système Unix , Windows, ...  Il possède une impressionnante quantité d'outils (manipulation d'images, traitement de fichiers, accès aux bases de données, etc…)
  • 5. Définition de PHP 5  Le PHP(officiellement "PHP: Hypertext Preprocessor") est un langage complet, écrit en C, qui reprend une grande partie des spécificités techniques et sémantiques de ce langage.  Le moteur d'interprétation du langage lit un fichier source PHP, puis génère un flux destination.
  • 6. Langages PHP :Fonctionnement 6  Le code PHP est enregistré dans un fichier sur le serveur  A la demande, le serveur interprète le code PHP du fichier.  La page modifiée est envoyée au client  L’utilisateur ne voit pas le PHP  Lorsqu'une erreur survient, un message est intégré dans le flux de sortie, et la génération du script est interrompue.  Le serveur détecte les fichiers PHP par leur extension. Extensions courantes: php, php3, php4
  • 7. Schéma de fonctionnement général d'un langage de script 7
  • 8. PHP: Règles d’interprétation 8  Un bloc PHP est un groupe continu de lignes, encadré par deux balises : <? et ?> ou <?php et php?>  Toute ligne située à l'extérieur de ces balises n'est pas interprétée et est envoyée telle quelle dans le flux de sortie.  Toute ligne située à l'intérieur de ces balises est considérée comme une instruction PHP et est donc interprétée par le moteur.
  • 9. Premier programme 9  La conception du script PHP est réalisé avec un éditeur quelconque, ce qui facilite les choses. <HTML> <HEAD><TITLE>Mon premier programme </TITLE></HEAD> <BODY> <? echo " Exemple PHP!"; ?> </BODY> </HTML>  L'extension de votre fichier doit être .php afin d ’être interprété par le serveur
  • 10. Commentaires & E/S  Commentaires  Les E/S
  • 11. Commentaires  Le PHP supporte les commentaires comme en C, C++ et Shell Unix.  Par exemple: <?php echo "Ceci est un test"; // Ceci est un commentaire comme en C++ /* Ceci est un commentaire sur plusieurs lignes, comme en C et C++ */ echo "Ceci est encore un test"; echo "Enfin, le test final"; # Ceci est un commentaire idem en Shell Unix ?>
  • 12. Les E/S  le PHP possède les fonctions qui permettent d’afficher ou de saisir des variables de différents types.  Print: int print ( string arg )  print affiche la chaîne de caractères arg .  retourne toujours 1  On n’est pas obligé d'utiliser des parenthèses.  Identique à echo  Exemples: <?php print("Bonjour le monde"); print "Ce print() se répartit sur plusieurs lignes. Il affiche aussi les nouvelles lignes"; print "L'échappement de caractères se fait : "comme ceci". "?>
  • 13. Les E/S: Print  Utilisation avec des variables $foo = "foobar"; $bar = "barbar"; print "foo vaut $foo"; // s’affiche: foo vaut foobar//  Les guillemets simples annulent le remplacement des variables print 'foo vaut $foo'; // foo vaut $fooprint
  • 14. Les variables 14  Chaque variable est précédée par '$'  Contrairement à beaucoup de langages, PHP ne contient de partie déclarative clairement définie.  Pour déclarer une variable, il suffit de l'initialiser.  Celle-ci sera immédiatement accessible, et le restera jusqu'à la fin du script.  Le type d'une variable est également défini par la valeur qui lui à été affecté lors de sa création.  Les variables en PHP sont toutes dotés du préfixe $ exemple : $data = 1;
  • 15. Portée des variables 15  Selon l'endroit du code où les variables sont définies, ces dernières auront une portée plus ou moins grande  c-à-d qu'elles seront définies soit pour une partie du code (fonction) soit pour sa totalité.
  • 16. Portée des variables 16  Il existe 3 niveaux de définition de variables :  Le niveau global : Il définit des variables dans l'intégralité du code d'une page PHP.  Le niveau local : Il définit des variables propres à une fonction, dont la durée de vie ne dépasse pas le temps de cette fonction.  Le niveau static : Il définit des variables propres à une fonction, qui persistent pendant l'intégralité du code de la page PHP.
  • 17. Type de variable  PHP supporte les huit types basiques suivants :  PHP supporte quatre types scalaires :  Booléen  entier  nombre à virgule flottante  chaîne de caractères  PHP supporte deux types composés :  tableau  objet  PHP supporte deux types spéciaux :  ressource : Une ressource est une variable spéciale, contenant une référence vers une ressource externe. Les ressources sont créées et utilisées par des fonctions spéciales.  NULL  On utilise également quelques pseudo−types pour des raisons de lisibilités :  Mixed : mixed indique qu'un paramètre peut accepter plusieurs (mais pas nécessairement tous) types.  Number: indique qu'un paramètre peut être soit un nombre entier, soit un nombre décimal
  • 18. Dépassement de capacité des entiers  Si un nombre est hors de l'intervalle de validité des entiers, il sera interprété comme un float .  De même, si vous effectuez une opération qui retourne un nombre hors de l'intervalle de validité des entiers, un float sera retourné.  Exemple: <?php $large_number = 2147483647; echo " $large_number " ; $large_number = 50000 * $million; echo " $large_number " ; ?>
  • 19. Conversion des nombres  Pour explicitement convertir une valeur en entier on peut utiliser les opérateurs de transtypage (int) ou (integer) .  Cependant, dans la plupart des situations, ce n'est pas nécesaire, car une valeur sera automatiquement convertie si un opérateur, une fonction ou tout autre élément du langage requiert un entier . <?php $foo = 10; // $foo est un entier $bar = (double) $foo; // $bar est un double $bar=10; $foo = (float) $bar; $bar=10.5; $foo = ( int ) $bar; ?>
  • 20. Opérations sur les nombres + $a+$b Somme - $a-$b Soustraction * $a*$b Multiplication / $a/$b Division en entière % $a%$b Modulo, reste de la division ++ $a++ Incrémente de 1 et l’affecte à $a +=n $a+=n Incrémente de n et l’affecte à $ -- $a-- Décrémente de 1 et l’affecte à $ -=n $a-=n Décrémente de n et l’affecte à $ *=n $a*=n $a= $a*n /=n $a/=n $a= $a/n On retrouve les mêmes opérations classiques en C.
  • 21. Exemple <?php $a = ($b = 4) + 5; // $a est maintenant égal à 9, et $b vaut 4. $a = 3; $a += 5; // correspond à l’instruction ’$a = $a + 5’ ?>
  • 22. Division Entière  Il n'existe pas de division entière en PHP.  1/2 générera le float 0.5 .  On peut forcer la valeur au format entier pour faire l'arrondi. <?php $a=25/7; // 3.5714285714286 $b=(int) (25/7); // 3 echo " $a : $b"; ?>
  • 23. Les nombres à virgule flottante  Les nombres décimaux (connus aussi sous le vocable de " double ", " float " ou " nombre rééls ")  peuvent être spécifiés en utilisant la syntaxe dans l’exemple suivante : <?php $a = 1.234; $b = 1.2e3; $c = 7E−10; ?>
  • 24. Les chaînes de caractères  Les chaînes de caractères sont des séquences de caractères.  Une chaîne peut être spécifiée de trois manières différentes :  guillemets simples  guillemets doubles
  • 25. Guillemets simples <?php echo 'Ceci est une chaîne simple'; echo 'Arnold a coutume de dire : "I'll be back"'; // affiche tel que : "I'll be back" echo 'Etes−vous sûr de vouloir effacer le dossier C:*.*?'; // affiche : tel que echo 'Les variables ne seront pas $afficher $ici';
  • 26. Guillemets doubles  $ch=" bonjour ";  Conséquence:  Pour spécifier un guillemet simple littéral, vous devez l'échapper avec un anti−slash ( ),  Si un anti−slash doit apparaître dans votre chaîne ou bien en fin de chaîne, il faudra le doubler.  Exemple: $str="salut les "amis,"n ca va aujourd’hui ? " ; echo "$str";
  • 27. Traitement des variables dans les chaînes  Les chaînes peuvent être concaténées avec l’opérateur ’.’ (point). Notez que l’opérateur ’+’ (addition) ne fonctionnera pas.  Exemple 1: <?php $boisson = 'limonade'; echo "Du $boisson, du pain et du fromage!"; // Correct echo 'Il a goûté plusieurs ' . $boissons; // correct echo "Il a goûté plusieurs $boissons"; // Correct ?>
  • 28. Intégration du php dans une page hrml <html> <body> <font size="2" face="Arial">Le texte en HTML</font> <?php $chaine ="bonjour en php "; print("<font size="2" face="Arial"> et celui en PHP.</font>"); ?> <br><font size="2" face="Arial"> <?php echo $chaine ; ?>.</font> </body> </html>
  • 29. Les structures de contrôle PHP  Les opérateurs de comparaisons  Les opérateurs logiques  if/else/elseif  while / do...while  for  switch
  • 30. Opérateurs de Comparaison  Ils permettent de comparer les valeurs de deux variables. exemple : Ici $a et $b sont du même type de variable. Opérateur Exemple Résultat == $a == $b vrai si $a est égal à $b != $a != $b vrai si $a est différent de $b < $a < $b vrai si $a est inférieur $b > $a > $b vrai si $a est supérieur $b <= $a <= $b vrai si $a est inférieur ou égal à $b >= $a >= $b vrai si $a est supérieur ou égal à $b 30
  • 31. Opérateurs Logiques  Ils permettent de combiner plusieurs tests entre eux. exemple: Ici $a et $b peuvent prendre les valeurs booléennes vrai ou faux. Exemple opérateur Résultat and ( && ) $a and $b vrai si $a et $b sont vrai $a && $b tous les deux or ( || ) $a or $b vrai si $a est vrai ou $b $a || $b est vrai, ou encore si $a et $b sont vrai tous les deux not ( ! ) not $a vrai si $a est faux !$a 31
  • 32. Les structures de contrôle PHP 32  Ces instructions sont à la base de tout langage de programmation  Elles permettent d'effectuer des tests et des boucles indispensables au traitement des données  Instruction de condition  Instruction de répétition  Instruction de choix,…
  • 33. if / else / elseif 33  Permet d'effectuer un traitement si une condition est remplie.  Exemple : if ($val==1) { echo "1"; }
  • 34. if / else / elseif 34  On peut aussi effectuer un traitement si la condition n'est pas remplie. Ex : if ($val==1) { echo "instruction 1"; } else { echo "instruction 0"; }
  • 35. if / else / elseif 35  Mais si la condition n'a pas que deux cas possibles, on peut ajouter un autre test. if ($val==1) { echo "instruction 1"; } elseif ($valeur==2) { echo "2"; } else { echo "instruction 0"; }
  • 36. Syntaxe alternative  Le PHP propose une autre manière de rassembler des instructions à l’intérieur d’un bloc, pour les fonctions de contrôle if, while, for, et switch.  Dans chaque cas, le principe est de remplacer l’accolade d’ouverture par deux points (:) et l’accolade de fermeture par, respectivement, endif;, endwhile;, endfor;, ou endswitch;. <?php if ($a == 5): Echo “A vaut 5”; endif; ?>
  • 37. Syntaxe alternative <?php if ($a == 5): print "a égale 5"; print "..."; elseif ($a == 6): print "a égale 6"; print "!!!"; else: print "a ne vaut ni 5 ni 6"; endif; ?>
  • 38. Exercice :  Écrire un programme qui permet de dire si un nombre est pair ou impair <?php $N=6; If($N%2==0) print "$N est pair"; else print "$N est impair"; ?>
  • 39. Exercice :  Ecrire un script :  qui permet d’afficher la chaîne « la couleur préféré est rouge » ou chaîne « la couleur préférée est bleue » selon que la variable $nom soit égale à « fille » ou à « garçon » et que $age soit inférieur ou supérieur à 12  Afficher la chaîne dans la couleur considérée ( bleu ou rouge).
  • 40. Corrigé <?php $nom="fille"; $age= 10; If($nom=="fille" && $age< 12) print " la couleur préféré est les rouge"; Elseif ($nom=="garcon" && $age< 12) print " la couleur préféré est le bleu"; ?>
  • 41. Corrigé <html> … <?php $nom="fille"; $age= 10; If($nom=="fille" && $age< 12) print " <font color="red"> la couleur préféré est les rouge</font>"; Elseif ($nom=="garcon" && $age< 12) print " <font color="blue"> la couleur préféré est le bleu"; ?>
  • 42. while / do...while 42  Effectue un traitement tant qu'une condition n'est pas remplie. while (condition) (Instructions) do (instructions) while (condition)  Dans do...while, le traitement est toujours effectué une fois même si la condition n’est pas remplie.
  • 43. Exemple 43 Afficher les nombres inferieurs stricts à 10. <?php $valeur=0; while ($valeur<10) { echo $valeur; $valeur++; } $valeur=0; do { echo $valeur; $valeur++; } while ($valeur<10); ?>
  • 44. for 44  Tout comme l'instruction while, for effectue un traitement tant qu'une condition n'est pas remplie.  Mais elle intègre le paramétrage de la boucle  C'est-à-dire que l'instruction permet de définir l'initialisation des variables, la condition de fin de boucle et le traitement effectué à chaque itération.
  • 45. for 45 Exemple : Afficher les nombres inferieurs stricts à 10. for ($indice=0;$indice<10;$indice++) { echo $indice; }
  • 46. Exercices  Ecrire un programme qui permet de calculer le factoriel d’un nombre  Lister tous les nombre premiers inférieurs à un nombre N
  • 47. switch 47  Cette instruction remplace une suite de tests if  Permet de comparer une variable avec plusieurs valeurs possibles et d'effectuer un traitement en conséquence.
  • 48. switch 48 Afficher les nombres inferieurs stricts à 10. switch ($choix) { case 1: echo "La valeur est 1"; break; case 2: echo "La valeur est 2"; break; case 3: echo "La valeur est 3"; break; }
  • 49. Exercice : 1. Déclarer la variable $jour et lui affecter le nom d’un jour en anglais. Ecrire un script qui selon la valeur de $jour affichera sa traduction en anglais. 2. Soit 4 images img1.gif …img2.gif. Selon le choix de l’utilisateur (1,2, 3, 4), écrire un script qui affichera l’mage correspondante.
  • 50. break 50  Cette instruction permet de forcer la sortie d'une boucle avant que la condition de sortie ne soit remplie.  Utilisée surtout dans le switch elle permet de quitter le test lorsque la valeur est trouvée
  • 51. 51 break Afficher les entiers plus petits que 5. <?php $i = 0; while ($i < 10) { if ($i <= 5) Echo " $i "; else break; $i++; }
  • 52. 52 Exemple avec switch  break accepte un argument numérique optionnel qui vous indiquera combien de structures emboîtées ont été interrompues. $i = 0; while ( ++$i ) { switch ( $i ) { case 5: echo "à 5<br>n"; break 1; case 10: echo "à 10; quitting<br>n"; break 2; Default: break; }}?>
  • 53. 53 Continue  L’instruction continue est utilisée dans une boucle afin d’éluder (ignorer) les instructions de l’itération courante afin de passer directement à l’itération suivante.  continue accepte un argument numérique optionnel qui vous indiquera combien de structures emboîtées ont été ignorées.
  • 54. 54 Continue <?php $i=1; while ($i< 10) { If ($i==5) {$i++; continue;}//aller à l’iteration suivante else {echo $i; $i++;} echo " la partie non affiché"; } ?>
  • 55. Les tableaux 55  Dans PHP, on retrouve aussi, comme dans tout autre langage, les structures tableaux.  La déclaration d'un tableau se fait de la même manière que la déclaration d'une variable avec un indice se trouvant entre [ et ]. $liste[0] = 1; // on crée un tableau, et sa première valeur est 1  Pour un tableau à deux dimensions: $matrice[0][0] = 1
  • 56. Les tableaux 56  Il n'est pas obligatoire de préciser l'indice pour affecter une valeur. $liste[] = 10; // équivaut à $liste[0] = 1; $liste[] = 11; // équivaut à $liste[1] = 45; $liste[] = 16; // équivaut à $liste[2] = 6;  La déclaration et l’initialisation d'un tableau peuvent également se faire par l'intermédiaire de la fonction 'array()'.  Cette fonction permet de préciser les indices ainsi que les valeurs du tableau (à l'aide de l'opérateur =>). $liste[ ] = array(0=>10, 1=>11, 2=>16);
  • 57. Exercice : 57 Exercice : initialiser un tableau de 10 entiers. 1. Afficher la somme de ses éléments 2. Afficher le maximum de ses éléments 3. Afficher le minimum de ses éléments 4. Trier ce tableau
  • 58. Corrigé 58 1. Afficher la somme de ses éléments <?php $liste[ ] = array(0=>20, 1=>11, 2=>16, 3 =>19, 4=>1, 5=>26, 6=>10, 7=>31, 8=>16, 9=>13); $som=0; For($i=0;$i<10; $i++) $som=$som+liste[$i]; Print" La somme des éléments du tableau est = $som"; ?>
  • 59. corrigé <?php $liste[ ] = array(0=>20, 1=>11, 2=>16, 3 =>19, 4=>1, 5=>26, 6=>10, 7=>31, 8=>16, 9=>13); $max=$liste[0]; For($i=0;$i<10; $i++) {if(liste[$i]>$max) $max=liste[$i]; } Print" Le max est = $max"; ?>
  • 60. 60 Les tableaux associatifs  $a = array(1 => "nom", 2 => "prénom",3=>"age"); Syntaxe: array( [key =>] value , ... ) $a[key] = value;  $tableau = array('le bon', 'la brute', 'le truand'); $b = array (1, 2, 3, 17); Syntaxe: array( value1 , ... )
  • 61. 61 Les tableaux Associatif  Un tableau classique utilise des indices numériques  Un tableau associatif peut utiliser comme clé d’autre types comme les chaine de caractères $a["couleur"] = "rouge"; $a["saveur"] = "sucrée"; $a["forme"] = "rond"; $a["nom"] = "pomme";
  • 62. 62 Les tableaux Multidimension <?php $a[1] = $f; # tableau à une dimension $a["foo"] = $f; $a[1][0] = $f; # tableau à deux dimensions $a["foo"][2] = $f; # on peut mélanger les indices associatifs et numériques $a[3]["bar"] = $f; $a["foo"][4]["bar"][0] = $f; # tableau à quatre dimensions ?>
  • 63. 63 Les tableaux Multidimension  La fonction array() peut être emboîtée pour remplir un tableau à plusieurs dimensions : <?php $a = array( "pomme" => array("couleur" => "rouge","saveur" => "sucrée","forme" => "rond"), "orange" => array("couleur" => "orange","saveur" => "amère","forme" => "rond"), "banane" => array("couleur" => "jaune","saveur" => "paste-y","forme" => "bananoïd") ); echo $a["pomme"]["saveur"]; # va afficher "sucrée"
  • 64. 64 Parcourt des tableaux  Les tableaux classiques peuvent être parcourus facilement en utilisant la clé numérique  Pour les tableaux associatif c’est un peut plus compliqué
  • 65. 65 Parcourt des tableaux $i = 0; while ($i < 10) { Echo "$arr[$i] "; } $i++; }
  • 66. Les Fonctions 66  PHP est un langage structuré, les fonctions en font une partie intégrante puisqu’elles sont la base d’une programmation claire et efficace.  Une fonction est une sorte de sous-programme isolé du reste du code, exécutable à tout moment, depuis n’importe quelle partie du code principal ou n’importe quelle autre fonction, par simple appel.  De plus, les avantages des fonctions sont :  La non répétition de la même séquence de code  Le gain de productivité.  La meilleure lisibilité du code.  La maintenance facilitée.
  • 67. Déclaration 67  Une fonction est une séquence de code qui peut remplir n’importe quelle tâche.  Tout code valide peut figurer dans le corps d’une fonction.  Déclaration : La syntaxe de déclaration s’appuie sur le mot clé function. Function nom_fonction(arguments_éventuels)
  • 68. Fonctions 68 exemple : function bonjour( ) { echo " Bonjour ! " ; } Bonjour( ) ; // affiche 'bonjour' à l’écran
  • 69. Fonctions 69 Exemple: Pour que la fonction retourne un résultat, on utilisera le mot clé return function bonjour2( ) { return " Bonjour !" ; } echo bonjour2( ) ; bonjour affiche le résultat elle-même, alors qu’il faut afficher le résultat de bonjour2 pour obtenir une action similaire.
  • 70. Déclaration, paramètres, valeurs de retour 70 function lecture($nom, $texte = 'Bonjour') { if(empty($nom)){ //si $nom est vide return false; }else { echo "$texte $nom"; // on affiche le texte return true; // fonction exécutée avec succès } }
  • 71. 71 Fonctions liées aux tableaux associatifs foreach: Deux syntaxes possibles <?php foreach(array_expression as $value) commandes //La première forme passe en revue le tableau //array_expression. A chaque itération, la valeur de l’élément //courant est assigné à $value et le pointeur interne de //tableau est avancé foreach(array_expression as $key => $value) commandes //La deuxième forme fait exactement la même chose, mais // c’est la clé de l’élément courant qui est assigné à la // variable $key. ?>
  • 72. 72 Fonctions liées aux tableaux associatifs foreach ($arr as $value) { echo "Valeur: $value<br>n"; } foreach ($arr as $key => $value) { echo "Clé: $key; Valeur: $value<br>n"; }
  • 73. 73 foreach <?php /* exemple 1: valeur seule */ $a = array (1, 2, 3, 17); foreach ($a as $v) { print "Valeur courante de $a: $vn"; } /* exemple 1: valeur (avec clé associée) */ $a = array (1, 2, 3, 17); $i = 0; /* pour affichage seulement*/ foreach($a as $v) { print "$a[$i] => $v n"; } ?>
  • 74. 74 Foreach /* exemple 1: valeur et clé */ $a = array ( "un" => 1, "deux" => 2, "trois" => 3, "dix-sept" => 17 ); foreach($a as $k => $v) { print "$a[$k] => $v.n"; } ?>
  • 75. Parcourt avec each() et list() 75  each(..)  Cette fonction permet de parcourir tous les éléments d'un tableau sans se soucier de ses bornes.  Elle retourne la combinaison clé-valeur courante du tableau passé en paramètre, puis se positionne sur l'élément suivant, et cela du premier au dernier indice.  Lorsque la fin du tableau est atteinte, each( ) retourne la valeur faux (false).  list(..)  Associée à la fonction each(), elle permet d'affecter les éléments du tableau renvoyé par each dans deux valeurs distinctes.  Reset()  le pointeur interne de tableau est automatiquement ramené au premier élément du tableau
  • 76. 76 Fonctions each() et list() Parcourt avec « reset », « each » et « list » <?php $nom["ali"]="rassi"; $nom[" fati"]="Alilo"; $nom[" kamal"]="Dabar"; reset($nom); while (list($clef,$valeur)=each($nom)) echo "$clef, $valeur<br>"; ?>
  • 77. 77 Autres fonctions sur les tableaux  La navigation dans les éléments du tableau s'effectue à l'aide des fonctions next() , prev() et 'each()'.  Le nombre d'éléments d'un tableau peut être obtenu à l'aide de la fonction count().  Le tri des tableaux est facilité par de nombreuses fonctions : asort(), ksort(), sort(), usort(), etc...
  • 78. Fonctions each() et list() 78 exemple : $tableau = array("val1","val2","val3","val4"); //on crée un tableau while ($var = each($tableau)) { echo "$var[0] : $var[1]"; } Ce code produit le résultat suivant : 0 : val1 1 : val2 2 : val3 3 : val4 ici l'indice est affecté au premier élément de $var et la valeur au deuxième élément $var
  • 79. Variables d'environnement 79  L'un des aspects fondamentaux d'une application construite sur une architecture de type intranet est l'utilisation des variables d'environnement du serveur,  notamment celles du serveur HTTP  Avec PHP toutes les variables d'environnement du serveur sont automatiquement reprises dans les scripts PHP en tant que variables globales.  Ainsi il suffit de les utiliser directement dans le code.
  • 80. 80 Fonctions liées aux variables d'environnement  Accès aux éléments du Tableau $_SERVER $IP=$_SERVER['REMOTE_ADDR'] echo $IP; @ IP de la machine cliente  La fonction phpinfo() affiche toute seule un tableau récapitulatif :  des paramètres du serveur  et de l'interpréteur PHP, <?php phpinfo(); ?>  PHP fournit la fonction getenv() permettant de retourner la valeur de la variable d'environnement passée en paramètre: <?php echo getenv("HTTP_USER_AGENT"); ?>
  • 81. Exemples de variables d’environnement81  SERVER_SOFTWARE :Chaîne d'identification du serveur, qui est données dans les entêtes lors de la réponse aux requêtes.  PHP_SELF : Le nom du fichier du script en cour d'exécution, par rapport au document root.  DOCUMENT_ROOT : La racine sous laquelle le script courant est exécuté, comme défini dans la configuration du serveur.  REMOTE_ADDR : L'adresse IP du client qui demande la page courante.  REMOTE_PORT :Le port utilisé par la machine cliente pour communiquer avec le serveur web.  SCRIPT_FILENAME : Le chemin absolu jusqu'au script courant.  SERVER_PORT : Le port de la machine serveur utilisé pour les communications. Par défaut, c'est '80'. En utilisant SSL, par exemple, il sera remplacé par le numéro de port HTTP sécurisé.  REQUEST_URI : L'URI qui a été fourni pour accéder à cette page
  • 82. Exercice : 1. Ecrire un programme qui permet d’afficher les variables d’environnement suivantes $HTTP_HOST, $SERVER_ADDR, $SERVER_, $SERVER_NAME, $SERVER_PORT et la valeur correspondante
  • 83. Variables issues de formulaires 83  Les variables sont issues de formulaires HTML  Elles correspondent aux différents champs positionnés entre les balises <FORM> et </FORM> de ce formulaire.  La page qui reçoit ces variables est celle qui est désignée par l'attribut ACTION de la balise <FORM>.  exemple : <HTML> <FORM ACTION="test.php" METHOD=POST> Nom : <INPUT TYPE=text NAME="nom"> <INPUT TYPE=submit VALUE="Envoyer"> </FORM></HTML>
  • 84. Variables issues de formulaires 84 <?php $NOM=$_POST['nom']; echo $NOM; ?>
  • 85. Fonction empty et isset  Les deux fonctions testent les variables et il y a souvent une confusion entre eux bool emtpy(mixed var) retourne FALSE si var à une valeur non vide et différente de zéro. bool isset(mixed var) renvoie TRUE si la variable var est définie, FALSE sinon.
  • 86. Fonction empty et isset  La confusion vient de la définition d'une chaîne vide :  "" (une chaîne vide)  0 (0 en tant qu’entier)  "0" (0 en tant que chaîne de caractères)  NULL  FALSE  array() (un tableau vide)  var $var ; (une variable déclarée, mais sans valeur dans une classe)  Exemple: <?php $var = 0; if (empty($var)) {// Evalué à vrai car $var est vide echo '$var vaut soit 0, vide, ou pas définie du tout'; } if (isset($var)) {// Evalué à vrai car $var est défini echo '$var est définie même si elle est vide'; } ?>
  • 87. Fonctions include - require  Les deux fonctions include et require permettent d'insérer dans un script le code contenu dans un autre fichier. <?php include "phrase.txt";?>  On peut l’intégrer dans n’importe quelle page d’un site  On peut tout aussi bien insérer du code PHP.
  • 88. Différence entre require et include  Les includes sont conditionnels.  Ils peuvent être placés dans une condition IF ou bien dans une boucle FOR, WHILE...  Les requires sont nécessaires et devrait donc se trouver toujours en début de script.  C'est généralement un require() que l'on devrait utiliser (pour tout ce qui est librairies ou paramètres globaux).  Bien souvent il est conseillé d'utiliser require_once() et include_once() à la place.  Le différence avec leur homologue est que le fichier ne sera inclu qu'une seule fois quoi qu'il
  • 89. Fonctions include - require  ex : <?php include "phrase.php";?>  Où le contenu du fichier phrase.php serait : <?php $phrase="Phrase du jour"; print("La phrase du jour est : "); print($phrase); ?>  L'utilisation la plus courante de ces fonctions est par exemple:  l'inclusion des en-têtes  des menus  des bas de page qui sont présents sur toutes les pages du site.
  • 90. Fonction include  Par exemple, si on ne veut pas utiliser de "frames", qui sont source de conflit avec certains navigateurs, on est obligé de remettre le menu sur chaque page.  Avec une inclusion PHP, il suffit de définir le menu dans un fichier et de l'appeler sur chaque page.  Ensuite lors d'une modification du menu, un seul fichier est à modifier pour mettre à jour le site entier.  Cette manière de procéder prend toute son
  • 91. Include : Passage de variables  Le contenu du fichier "inclus" est ajouté directement au script principal.  Les variables sont donc accessibles aussi bien à partir du script qu'à partir du fichier.  ex : <?php $phrase="Phrase du jour"; include "phrase.php";?>  Le fichier "phrase.php" peut donc interpréter la valeur de la variable "$phrase".  Contenu du fichier "phrase.php" : <?php print("La phrase du jour est : "); print($phrase);
  • 92. Passage par valeur & référence 92  Le passage des paramètres tel qu’on l’a vu précédemment est ce que l’on appelle le passage par valeur.  Il existe une autre manière de procéder :le passage par référence.  On passe à la fonction la référence (adresse mémoire) d’une variable existante, et la fonction modifie directement la valeur de cette variable.
  • 93. Passage par valeur & référence 93 function bonjour(&$phrase) { $phrase= " bonjour " ; } $chaine = " Phrase qui va disparaître " ; bonjour($chaine) ; echo $chaine ; // affiche "bonjour" à l’écran
  • 94. Fonctions Mathématiques 94  Elles y sont toutes !  Abs, cos, sin, tan, sqrt, exp, …  pi( )
  • 95. Chaînes de caractères 95  strpos (chaîne, sous chaîne) : retourne la position de la sous chaîne dans la chaîne. Dans le cas où la chaîne existe en plusieurs exemplaires, c’est la position de la première occurrence qui est retournée.  strrpos retourne quand à elle la position de la dernière occurrence.  strstr (chaîne, sous chaîne) retourne la portion de la chaîne à partir de la première occurrence de la sous chaîne.  strlen (chaîne) : retourne la taille de la chaîne.  strtolower|strtoupper (chaîne) : retourne la chaîne passée en paramètres an minuscules (resp. majuscules).  str_replace (car d’origine, car de destination, chaîne) : remplace le caractère d’origine par le caractère de destination dans la chaîne.  g supprime les caractères invisibles (espaces,n, …) au début et à la fin de la chaîne.  ereg(chaîne à chercher, chaîne) : retourne vrai si la chaîne à chercher (sous forme de chaîne ou sous forme d’expression régulière) est contenue dans chaîne.
  • 96. Fonction date 96  La fonction date permet de décrire une date en retournant une chaîne de caractères sous le format désiré.  Cette date est exprimée en fonction du timestamp qui est le nombre de secondes écoulé depuis le 1 Janvier 1970 (époque UNIX).  Syntaxe : Chaîne date(entier format, entier timestamp)  L'argument timestamp est optionnel, s'il est vide, l'heure et la date courante seront utilisées.  Exemple: echo date("d-m-Y"); // affiche : "12-12-2000"
  • 97. 97 Fonction date <?php $date_du_jour = date ("d-m-Y"); $heure_courante = date ("H:i"); echo 'Nous sommes le : '; echo $date_du_jour; echo ' Et il est : '; echo $heure_courante; ?>
  • 98. 98 Fonction date  Voici la liste des paramètres possibles pour la fonction date() : - a : "am" (matin) ou "pm" (après-midi) - A : "AM" (matin) ou "PM" (après-midi) - d : Jour du mois, sur deux chiffres (éventuellement avec un zéros) : "01" à "31" - D : Jour de la semaine, en trois lettres (et en anglais) : par exemple "Fri" (pour Vendredi) - F : Mois, textuel, version longue; en anglais, i.e. "January" (pour Janvier) - h : Heure, au format 12h, "01" à "12" - H : heure, au format 24h, "00" à "23" - g : Heure, au format 12h sans les zéros initiaux, "1" à "12" - G : Heure, au format 24h sans les zéros initiaux, "0" à "23" - i : Minutes; "00" à "59" - j : Jour du mois sans les zéros initiaux: "1" à "31" - l : Jour de la semaine, textuel, version longue; en anglais, i.e. "Friday" (pour Vendredi) - L : Booléen pour savoir si l'année est bissextile ("1") ou pas ("0") - m : Mois; i.e. "01" à "12" - n : Mois sans les zéros initiaux; i.e. "1" à "12" - M : Mois, en trois lettres (et en anglais) : par exemple "Jan" (pour Janvier) - s : Secondes; i.e. "00" à "59" - S : Suffixe ordinal d'un nom
  • 99. Gestion des fichiers 99  La fonction de base est la fonction fopen( ).  C'est elle qui permet d'ouvrir un fichier, que ce soit pour le lire, le créer, ou y écrire.  Sa syntaxe est : entier fopen(chaine nomdufichier, chaine mode);
  • 100. Gestion des fichiers 100 Différents modes disponibles r : ouverture en lecture seulement w : ouverture en écriture seulement (la fonction crée le fichier s'il n'existe pas) a : ouverture en écriture seulement avec ajout du contenu à la fin du fichier (la fonction crée le fichier s'il n'existe pas) r+ : ouverture en lecture et écriture w+ : ouverture en lecture et écriture (la fonction crée le fichier s'il n'existe pas) a+ : ouverture en lecture et écriture avec ajout du contenu à la fin du fichier (la fonction crée le fichier s'il n'existe pas).
  • 101. Gestion des fichiers 101 Exemples : $fp = fopen("fichier.txt","r"); //lecture $fp = fopen(" fichier.txt ","w"); //écriture depuis début du fichier $fp = fopen("fichier.txt","a"); //écriture depuis fin du fichier
  • 102. Lecture dans un fichier 102 < ?php $monfichier = fopen("monfichier.txt", "r") ; // ouverture en lecture if ( !($monfichier)) { print(" Impossible d’ouvrir le fichier ") ; exit ;} while ( !feof($monfichier) ) { $ligne = fgets($monfichier,255); // 255 caractères max. ou bien fin de ligne. echo " $ligne <BR>" ; } fclose ($monfichier) ;?>
  • 103. Écriture dans un fichier 103 < ? $monFichier = fopen("monfichier.txt",’ "w") ; // ouverture en écriture if ( !($monfichier)) { print(‘’ Impossible de créer le fichier n’’) ; exit ; } fputs($monfichier, "ligne 1") ; // on écrit deux lignes fputs($monfichier, "ligne 2") ; fclose($monfichier) ; // on ferme le fichier, on libère les ressources
  • 104. Fonction Explode 104  Il est fréquent d’avoir des fichiers contenant différents champs séparés par un délimiteur quelconque.  Une fonction très utile dans ces cas là est la fonction explode.  Sa syntaxe est la suivante explode ("caractère délimiteur", chaîne de donnée)
  • 105. Fonction Explode 105 <?php if (!file_exists(« test.txt »)) { print "<H3><BR>Erreur, fichier compteur manquant<BR>"; exit; } else { $fd = fopen($fic,"r"); while (!feof($fd)) { $ligne = fgets($fd,255); $tab=explode("|",$ligne); print "Nom : $tab[0]<br>"; print "Prénom : $tab[1]<br>"; print "Age : $tab[2]<br>« ;} fclose($fd); }?>