Télécharger la présentation
Publié parLucie Villain Modifié depuis plus de 11 années
1
Langage PHP : Chapitre 1 Pr. Aissam MESRAR Ecole ESIAM
2
Plan général du cours Introduction Eléments de base du langage PHP
Fonctions Tableaux Formulaires PHP et MySQL Cookies Sessions Expressions régulières Ecole ESIAM
3
Plan Introduction Eléments de base du langage PHP Fonctions
Ecole ESIAM
4
Introduction Ecole ESIAM
5
Schéma statique du web Serveur Client Réseau
Demande page 2 P2 P1 P2 P3 Pn Le serveur abrite un certain nombre de pages web statiques que les clients peuvent consulter à n’importe quel moment Le résultat de consultation d’une page sera le même chez tous les clients et à tout moment Ecole ESIAM
6
Limites du Schéma statique du web
Serveur Client Réseau P1 P2 P3 Pn Peut-on réaliser un site web qui diffuse les infos instantanées avec des pages web statiques ? Peut–on réaliser un site web qui donne les prévisions météorologique dans toutes les villes du monde ? Requête : Météo de la ville de Fès le 10 Mars 2006 à 15h Ecole ESIAM
7
Limites du Schéma statique du web
Schéma statique non convenable Impossible de prévoir des pages statiques instantanées, On ne sait pas à quel instant l’info sera mise à jour, c’est aléatoire. Difficile de prévoir des pages web pour chaque ville et à n’importe quelle date Web dynamique et interactif Ecole ESIAM
8
Web dynamique et interactif
Serveur Réseau Client Demande page 2 P2 P1 P2 P3 Pn Après un moment Les pages web sur le serveur sont dynamiques Le résultat de consultation d’une page peut changer d’un moment à l’autre pour le même client ou clients différents La mise à jour de la page ne dépend pas des clients Le résultat de consultation d’une page peut changer selon les critères du client (formulaire) Ecole ESIAM
9
Web dynamique et interactif
Moteur PHP Page web générée sur le serveur à la demande Critères du client (formulaires,…) Interaction avec des fichiers ou des Bases de Données Ecole ESIAM
10
Web dynamique et interactif
Serveur Réseau Pn.html Client Moteur PHP Demande p1.html P3.php P2.php P1.html P1.html La page p1.html a été envoyée au client sans le moindre traitement Ecole ESIAM
11
Web dynamique et interactif
Serveur Réseau Pn.html Client Moteur PHP Demande p2.php P3.php P2.php P1.html P2.html P2.html La page p2.php est traitée (interprétée) par le Moteur PHP Le résultat de ce traitement (p2.html) est envoyé au client La page p2.html n’est pas stockée chez le serveur Ecole ESIAM
12
Web dynamique et interactif
Autres moteurs CGI Common Gateway Interface ASP Active Server Pages JSP Java Server Pages CFM Cold Fusion Macromédia PERL Ecole ESIAM
13
Langages compilés/Interprétés
Langages interprétés PHP, Perl, Python, JAVA, JavaScript Langages compilés C, C++, JAVA, Pascal Ecole ESIAM
14
Langages compilés/Interprétés
Avantages Conversion en binaire : 1e seule fois Plus rapide Inconvénients Incompatibilité / plates_formes Ecole ESIAM
15
Langages compilés/Interprétés
Langages interprétés Avantages Portabilité Inconvénients Relativement lent Code source divulgué Script : un programme écrit dans un langage interprété Ecole ESIAM
16
Domaines d’application des langages
PHP, ASP, JSP,CFM : WEB C : Applications Systèmes JAVA : Applications pour systèmes embarqués (tél portable, carte à puce) PERL : Administration système C++ : Applications avec interfaces graphiques Ecole ESIAM
17
Performances des langages
Un langage est performant dans son domaine d’application. Pour un même PB : 10 lignes de codes ( langage i) 300 lignes (langage j) Ecole ESIAM
18
PHP : Raisons de succès Langage interprété conçu dès son origine pour le web Intégré avec l’HTML Dans le même fichier, on peut trouver du code HTML et PHP Ecole ESIAM
19
PHP : Raisons de succès Performances Rapidité
Stabilité : ne plante pas Scalabilité : comportement normal avec un nombre important de visiteurs Sécurité : pas de défaillance Sécurité de PHP Sécurité d’application écrite en PHP Ecole ESIAM
20
PHP : Raisons de succès Open source Portabilité
Projet planétaire (meilleurs compétences) Gratuit Bibliothèque riche de scripts sources gratuits sur le web Portabilité Toutes les plates-formes (matérielles et logicielles) disposent d’interpréteur PHP Serveur web : Apache, IIS, AOL server, Roxen Environnement préféré : Apache/Linux Apache : le plus utilisé (yahoo, google) Linux : deuxième système d’exploitation après Windows Ecole ESIAM
21
Concurrents de PHP : ASP
Avantages Compatibilité avec les outils Microsoft (IIS,Frontpage, Visuel Studio, Access, SQL Server) Outils avec interface simple : Pas besoin d’être ingénieur système pour administrer le serveur web Inconvénients Limité au serveur IIS IIS : Pb de sécurité Logiciel payant, de plus, il faut acheter tous les outils accompagnants Ecole ESIAM
22
Concurrents de PHP : JSP
Avantages Utilise un langage totalement Orienté Objets Portabilité (JAVA) Meilleure sécurité Inconvénients Relativement difficile (il faut maîtriser Java) Nécessite beaucoup de ressources (JVM ) Ecole ESIAM
23
Concurrents de PHP : Cold Fusion Macromédia
Avantages Environnement de développement central intégrant tous les outils Interface graphique simple : facile pour les débutants Inconvénients Langage lourd, mal conçu, évolue lentement ne convient pas aux développeurs initiés Hébergeurs CFM : Pas nombreux et payants Environnement payant Ecole ESIAM
24
Concurrents de PHP : PERL
Avantages PERL : vieux bibliothèque d’extension très riche Open source : langage gratuit Inconvénients Le web n’était pas l’objectif du PERL à l’origine Installation sur machine cliente relativement compliquée Ecole ESIAM
25
PHP : Historique Créé en 1994 par Rasmus Lerdorf pour conserver la trace des utilisateurs venus consulter son CV PHP signifie alors Personal Home Page Version 2.0 en 1995 Récupération de données soumises par Formulaire Interfaçage avec les SGBD Possibilité d'effectuer des calculs mathématiques Ecole ESIAM
26
PHP : Historique 1996 : 15 000 sites Web 1997 1998
moteur Zend : + de performances, + de bibliothèques Zend provient des noms de ses concepteurs : Andi Gutmans et Zeev Suraski sites Web 1998 version 3.0 : + d'extensions, + d'interfaçage, syntaxe objet PHP signifie : PHP Hypertext Prepocessor Ecole ESIAM
27
PHP : Historique 1999 : 100 000 sites Web
2000 : version 4.0, basée sur le moteur Zend (+de sécurité, + de performances) 2001 : sites Web 2003 : versions et 5.0B2 On estime que 20% des domaines d'Internet utilisent PHP 2005 : version 5 Orienté Objet Ecole ESIAM
28
Eléments de base de PHP Ecole ESIAM
29
Structure d’un script PHP
Code PHP entre les balises <?php et ?> Syntaxe très proche du langage C et C++ Sensible à la casse fait la différence entre minuscule et majuscule Chaque instruction se termine par un point virgule : ; Exemple : simple.php <?php print "Mon premier essai avec PHP"; ?> print est une fonction prédéfinie qui affiche son paramètre Ecole ESIAM
30
Génération de page à partir d’un script
<?php …. ………. …….. ?> <html> …. ………. …….. </html> Moteur PHP Ecole ESIAM
31
Structure d’un fichier PHP
Possibilité d’intégrer un script avec du code HTML dans le même fichier (extension .php, .php3, .phtml) Code HTML <?php …. ………. …….. ?> <html> …. ………. …….. </html> Moteur PHP Ecole ESIAM
32
Structure d’un fichier PHP
Possibilité d’intégrer plusieurs scripts dans le même fichier Exemple : plusieurs_scripts.php Ecole ESIAM
33
Commentaire Trois manières d’écrire le commentaire
// Commentaire de ligne #Commentaire de ligne /* commentaire sur plusieurs lignes */ Ecole ESIAM
34
Types de données Types de base prédéfinis : Numérique
Entier Réels Chaînes de caractères Booléen Défini implicitement avec des expressions numériques ou/et des chaînes de caractères Ecole ESIAM
35
Types de données Types Numériques Opérateurs Entiers Réels Exemples :
4, -6, 102 Réels 10.25, Opérateurs Opérateurs arithmétiques : +,-,*,/,% Opérateurs d’incrémentation/ decrémentation : ++,-- Ecole ESIAM
36
Types de données Chaînes de caractères
Suite de caractères délimitée par " " ou ‘’ Exemples : "bonjour" ou ‘bonjour’ Concaténation des chaînes de caractère : opérateur . "bonjour " . "ami" équivalent à "bonjour ami" Ecole ESIAM
37
Types de données Type booléen Opérateurs
N’est pas défini explicitement Cas particulier des types numériques et chaînes de caractères Convention Vrai : ≠ de 0 (numérique) ou non vide (chaîne de caractère) Faux : =0 (numérique) ou vide (chaîne d caractère) Opérateurs Opérateurs de comparaison ==, !=,>,>=,<,<= Opérateurs logiques && , and, || , or, Ecole ESIAM
38
Identifiants Identifiant de variables ou de constantes est une suite de caractères qui : Ne contient pas d’espace Commence par une lettre ou le caractère souligné ‘_’ Différent des mots clés Exemples Nom, n1, _prix, … 2n, prix ttc, define Ecole ESIAM
39
Constantes Objets dont la valeur ne change pas au cours de l’exécution du script Déclaration define("nom_constante" ,"valeur"); Exemples define("PI",3.14); define("Langue","Français"); Ecole ESIAM
40
Variables Pas besoin de déclaration explicite
La variable est précédée par le caractère ‘$’ lors de l’utilisation Exemple $a=10; print($a); Ecole ESIAM
41
Variables La variable peut changer de type au cours de l’exécution
Exemple: $a=10; print ($a); $a="bonjour"; Print($a); Tester l’initialisation d’une variable Fonctions isset() et empty() Ecole ESIAM
42
Expressions Expressions numériques Exemple $a=10; $x=2.67; $b=$a+5;
$c=($a+$b)*$x; Ecole ESIAM
43
Expressions Expressions de chaînes de caractères
Différence entre " " et ’ ’: entre " " les variables seront remplacées par leurs valeurs $b=" ami" ; $a="bonjour $b" ; $a sera bonjour ami Entre ’ ’ les variables dans la chaîne ne sont pas interprétées $b=" ami" ; $a=’bonjour $b’ ; $a sera bonjour $b Ecole ESIAM
44
Expressions Expressions de chaînes de caractères
Concaténation des chaînes : opérateur point ‘.’ Exemple $a="bonjour " ; $b=" ami " ; $c=$a.$b; $c sera "bonjour ami" Ecole ESIAM
45
Tests Ecole ESIAM
46
Test Forme 1 Permet de choisir entre deux alternatives selon la valeur d’une expression logique Notation if(exp_log) bloc1 else bloc2 Où bloc1 et bloc2 sont des suites d’instructions Exemple : test.php Ecole ESIAM
47
Test Forme 2 Permet d’exécuter une seule alternative si une condition est vérifiée. Dans ce cas la deuxième alternative n’existe pas. Notation if(exp_log) bloc1 Ecole ESIAM
48
Test Imbrication de if/else if(exp1) if(exp11) else if(exp21) bloc11
Ecole ESIAM
49
Test Imbrication de if/else : 2ème notation if(exp1) elseif(exp21)
bloc11 else bloc12 elseif(exp21) bloc21 bloc22 Ecole ESIAM
50
Choix multiple Permet de choisir une alternative parmi plusieurs
C’est la généralisation du test Notation switch(exp) { case val1 : bloc1; case val2 : bloc2; … case valn : blocn; [default : bloc_dfaut;] } Un bloci est exécuté si exp == vali default est optionnel Exemple :switch.php Ecole ESIAM
51
Les boucles Ecole ESIAM
52
Les boucles Permettent de répéter l’exécution d’un ensemble d’instructions plusieurs fois Trois types de boucles while do .. while for Ecole ESIAM
53
Les boucles Boucle while Notation : while (exp_log) { Bloc }
Ecole ESIAM
54
Les boucles Boucle do … while Notation : do { Bloc } while (exp_log);
Ecole ESIAM
55
Les boucles Boucle for Notation : for(init;exp_log;int_fin) { Bloc }
Ecole ESIAM
56
Les boucles Exemple : boucle.php <?php $s=0;
for($i=1;$i<=100;$i++) $s=$s+$i; print("<br> la somme des entiers de 1 à 100 est: $s"); ?> Ecole ESIAM
57
Les boucles Instruction break/continue break continue
Quitte la boucle immédiatement Avortement de la boucle continue Arrête l’itération en cours et passe à l’itération suivante Avortement de l’itération en cours Toutes les deux doivent être protégées par une condition Ecole ESIAM
58
Fonctions Ecole ESIAM
59
Pourquoi les fonctions ?
Modularité Diviser le problème à résoudre en petits Pbs et résoudre chacun d’eux par un module (facile à composer), appelé fonction pour la plupart des langages Réutilisabilité Possibilité de réutiliser certaines fonctions dans un autre problème MAJ facile La mise à jour d’une fonction n’affecte pas les autres fonctions Ecole ESIAM
60
Fonctions Déclaration Appel de la fonction
function nom_fonction($param1,$param2,…) { Corps de la fonction } $Param1, $param2, … sont dits paramètres formels de la fonction Appel de la fonction nom_fonction($eff1,$eff2,…) $eff1,$eff2,… sont dits paramètres effectifs Ecole ESIAM
61
Fonctions Fonction qui retourne une valeur Appel de la fonction
L’instruction return dans le corps de la fonction permet de retourner une valeur et de quitter la fonction. function nom_fonction($param1,$param2,…) { Corps de la fonction return($resultat); } $Param1, $param2, … sont dits paramètres formels de la fonction Appel de la fonction $r = nom_fonction($eff1,$eff2,…); Ecole ESIAM
62
Fonctions Exemple : fonction1.php fonction factorielle <?php
function fact($a) { $f=1; for($i=1;$i<=$a;$i++) $f=$f*$i; return($f); } $b=5; $c=fact($b); print($c); ?> Ecole ESIAM
63
Fonctions Utilisation des fonctions
Une fonction définie dans un script peut être utilisée dans les autres scripts du même fichier. Exemple : fonction2.php Ecole ESIAM
64
Fonctions Modes de passage des paramètres Par valeur Par référence
Par référence ponctuelle Ecole ESIAM
65
Fonctions Passage Par valeur Mode par défaut
Les paramètres effectifs gardent leur valeurs après l’appel de la fonction, même si cette dernière les modifie à l’intérieur de son corps. => la fonction travaille sur une copie des paramètres Ecole ESIAM
66
Fonctions Exemple : fonction_pass_val.php <?php
function doubler($a) { $a=$a*2; print("valeur du paramètre dans la fonction:$a<br>"); } $b=5; print("valeur du paramètre avant l'appel:$b<br>"); doubler($b); print("valeur du paramètre après l'appel:$b<br>"); ?> Ecole ESIAM
67
Fonctions Passage par référence
Le changement d’un paramètre effectif sera perceptible de l’extérieur. => la fonction travaille sur le paramètre et non sur sa copie Notation : précéder le paramètre formel par & function nom_fonction(&$param1,&$param2,…) Ecole ESIAM
68
Fonctions Exemple :fonction_passage_ref.php <?php
function doubler(&$a) { $a=$a*2; print("valeur du paramètre dans la fonction:$a<br>"); } $b=5; print("valeur du paramètre avant l'appel:$b<br>"); doubler($b); print("valeur du paramètre après l'appel:$b<br>"); ?> Ecole ESIAM
69
Fonctions Passage par référence ponctuel
Lors de la définition de la fonction les paramètres sont passés par valeur Lors de l’appel de la fonction les paramètres effectifs sont précédés par & Attention : Risque d’incohérence Ecole ESIAM
70
Fonctions Exemple : fonction_passage_ponc.php fonction factorielle
function doubler($a) { $a=$a*2; print("valeur du paramètre dans la fonction:$a<br>"); } $b=5; print("valeur du paramètre avant l'appel:$b<br>"); doubler(&$b); print("valeur du paramètre après l'appel:$b<br>"); ?> Ecole ESIAM
71
Fonctions Paramètres par défaut
Attribuer une valeur par défaut à un (des) paramètre(s) omis lors de l’appel d’une fonction Notation : affecter la valeur par défaut au paramètre formel function nom_fonction($param1,$param2 = val ) Le 2ème paramètre a une valeur par défaut Appel de la fonction nom_fonction($eff); nom_fonction($eff1,$eff2); Ecole ESIAM
72
Fonctions Paramètres par défaut Exemple : fonction_par_def1.php
function conversion($init=0,$fin=180,$pas=20) { for($i=$init;$i<=$fin;$i+=$pas) $grade = $i*200/180; print("$i : $grade <br>"); } conversion(); conversion(10); conversion(20,90,10); ?> Ecole ESIAM
73
Fonctions Paramètres par défaut : Attention !
Seuls les derniers paramètres peuvent avoir des valeurs par défaut Exemple : fonc_par_def2.php function f_ambigue($p1=0, $p2, $p3=5) Erreur lors de l’interprétation Ambiguité lors de l’appel de la fonction Comment interpréter f_ambigue(1,5) ? f_ambigue(0,1,5) ou f_ambigue(1,5,5) Ecole ESIAM
74
Fonctions Nombre de paramètres indéfini
Dans ce cas les paramètres sont extraits par deux fonctions : func_num_arg() : retourne le nombre de paramètres passés à la fonction func_get_arg ($i) : retourne le paramètre d’indice $i dans la liste des paramètres Le premier paramètre a l’indice 0 Ecole ESIAM
75
Fonctions Nombre de paramètres indéfini
Exemple : fonction_par_indef.php afficher les paramètres reçus par une fonction <?php function sansparam() { $nb_par = func_num_args(); for($i=0;$i<$nb_par;$i++) $param = func_get_arg($i); print("param $i : $param <br>"); } sansparam("bonjour","mon","ami"); ?> Ecole ESIAM
76
Fonctions Fonctions récursives
Dans le corps d’une fonction on peut trouver un appel à elle-même Exemple : fonction_recursive.php factorielle <?php function fact($a) { if ($a==1) return(1); else return($a*fact($a-1)); } $b=5; $c=fact($b); print("$b ! = $c"); ?> Ecole ESIAM
77
Fonctions Variables globales
Les paramètres locales à une fonction ne sont pas visibles de l’extérieur Une variable globale peut être accédée ou modifiée à partir de n’importe quelle fonction du même fichier Pour utiliser une variable globale (déclarée à l’extérieur de la fonction) nous devons la déclarer par la ligne suivante : global $nom_var; Exemple : fonction_var_global.php Ecole ESIAM
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.