La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Langage PHP : Chapitre 1 Pr. Aissam MESRAR Ecole ESIAM.

Présentations similaires


Présentation au sujet: "Langage PHP : Chapitre 1 Pr. Aissam MESRAR Ecole ESIAM."— Transcription de la présentation:

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


Télécharger ppt "Langage PHP : Chapitre 1 Pr. Aissam MESRAR Ecole ESIAM."

Présentations similaires


Annonces Google