1Lelangage PHP (partie I)Présentation réalisée par : Mahdi BEN ALAYAElève-Ingénieur à l’ENSI & Secrétaire Général du club Junior ENSI Entreprise (2008)Version : 22-11-2009
RemerciementsAvant de commencer, je tiens à présenter mes sincères remerciements à tous ceux qui ont contribué au bon déroulement de cette formation. Je tiens à remercier particulièrement M. MarouenOmmezzine et M. WassimeAbbessi qui ont assuré les formations Web2.0 et PHP pour les années 2007 et 2008 au sein du club Junior ENSI Entreprise.2
PlanLe concept Web2.0Le langage PHPPré-requisPremiers pasLes variables et les typesLes opérateurs arithmétiques et logiquesLes structures de contrôlesLes structures itérativesLes fonctionsExercices3
Le Concept Web2.04
Introduction5L’Internet est la fondation sur laquelle est construit le Web. Le Web est le service qui offre sur l’Internet une interface graphique permettant par simple pointage d’accéder à des documents sur le réseau. L’accès aux documents se fait en utilisant un logiciel de consultation (browser, aussi appelé navigateur).
La page web statique6Adaptée pour des sites web de petite taille, les sites vitrines, les pages au contenu permanent ou rarement mis à jour.N’est  pas adaptée pour des sites dont les informations font l'objet de modifications fréquentes(e-business) , les sites communautaires , les blogs …Pour modifier une page web statique, on utilise des éditeurs html.
Contenu d’une page web statique7page.htmlstyle.cssPage web StatiqueHTML:HyperText Markup Language  est un langagebalisépermettant de décrire la structure et la présentation des documents pour le Web .CSS: Cascading Style Sheets permet de partager des Feuilles de Style entre plusieurs documents HTML ou d’avoir plusieurs présentations pour un même contenu.
Exemple d’une page web statique8<HTML>        <HEAD><TITLE>titre</TITLE><linkrel="stylesheet" href="style.css" type="text/css" /></HEAD><BODY><h1> Hello World </h1><p> Bonjour les Ensiens</p>	<imgsrc="image.jpg" /><br/>	<a href="page2.html" >page2</a></BODY></HTML>body{background: green ;}h1{color : white;}p{font-family: Arial;text-align: left;   font-weight: bold;text-decoration: none ;   font-size: 13px ;}style.csspage.html
Exemple d’une page web statique9Notre Page web Statique
La page web dynamique10Construite à la demande (On the fly) par le serveur, en fonction de critères spécifiques : le nombre de visiteurs, une opération de calcul, extraire une information de la base de données, etc.Présentation et contenu adaptés de manière interactive, en fonction du lieu, de la date, du produit, de l’internaute, de la météo, de la langue, etcPlateformes et langages pour développer un contenu web dynamique : PHP, J2EE, .NET, Ruby On Rails,…
Le Concept Web2.011C’est quoi le Web 2.0 ? Est-ce qu’il y a des versions du Web !!?
Le Concept Web2.012Le concept Web 2.0 désigne la transition que vit actuellement le World Wide Web. Internet passe  aujourd’hui d'une collection de sites Web à une plateforme informatique à part entière, fournissant des applications Web aux utilisateurs.
Le Concept Web2.013
Caractéristiques générales14Le site ne doit pas être un jardin secret, c'est-à-dire qu'il doit être aisé de faire rentrer ou sortir des informations du système.Le site doit présenter des aspects de réseaux sociaux. l'utilisateur doit rester propriétaire de ses propres données.le site doit être entièrement utilisable à travers un navigateur standard.
Le Web1.015
Le Web2.016
17Evolution du Web
18Les Outils Web2.0
19http://fr.eyeos.org
Conclusion20
Conclusion21
Le langage PHP 22
Définition23PHP (HypertextPreprocessor) estun langage de scriptslibre créé en 1994 par RasmusLerdorfqui permet de produire des pages Web dynamiques via  un serveur HTTP.
CaractéristiquesInterprété: Exécution au moment de la lectureOpen Source : Gratuit, Evolution et correction des bugs rapides par la communauté Extensible : Répartition en modules,…Orienté Objets : A partir de la version 5Méthode RADPrincipe KISS24Rapid Application DevelopmentKeepit Simple and Stupid ;)
Le modèle statique1Demande hello.htmlHello.htmlRéponse hello.htmlServeur WEBClient25
Le modèle dynamique1Requête SQLScriptHello.phpBDDemande hello.phpRésultatPage htmlStatiqueInterprétationInterpréteurRéponse avec code statiqueServeur d’ApplicationClientServeur BD26
Pré-requis27
Pré-requis28Nous avons besoin d’un
Serveur d’application : Apache,
Interpréteur : Un moteur PHP,
Serveur de base de données : MySQLPlusieurs personnes savent par expérience qu'il n'est pas facile d'installer un serveur Apache et que ça se compliquesi vous voulez y ajouter MySQL et PHP.
Pré-requis29NotePad ++InterpréteurScriptHello.phpBDMoteur PHPFireFoxMySQLApacheServeur d’applicationClientServeur BD
Pré-requisHeureusement des solutions « all-in-one » existent  ;-)Easy PHP  www.easyphp.orgWAMPwww.wampserver.comXamppwww.apachefriends.org/fr/xampp.html30
Installation de WAMP31
Utilisation de WAMPTélécharger  et installer WAMP sur http://www.wampserver.com/32
Interface de WAMP33http://localhost/
Premiers pas avec PHP34
Syntaxe générale du langage35<?php		//Corps du script?>Il faut enregistrer notre document sous l’extension .phppour qu’il sera interprété par le serveur comme étant un document php.
Le « Hello World »36<html><head><title> Test page </title></head><body><?phpecho "<h2>Hello World :)</h2>";?></body></html>
Les commentaires37Un commentaire permet de vous y retrouver dans votre code. Ce texte est ignoré durant la génération de la page.<?phpecho "Ceci est un test";			     // commentaire			     /* un 				commentaire */			     # commentaire?>
Variables et Types38
Les variablesEn PHP, les variables sont représentées par le caractère dollar "$" suivi du nom de la variable.$Nom_de_la_variableLe nom est sensible à la casse ( $x != $X )	Un nom de variable valide doit commencer par : une lettre ou un tiret bas (_), suivi de : lettres, chiffres ou tirets bas.39
Exemples<?php$name;$_name;$1name;$_1name ;$NaMe3 ;?>40// Valide// Valide// Non Valide// Valide// Valide
Les typesPHP ne nécessite pas de déclaration explicite du type d'une variable. Le type est déterminé par le contexte d'utilisation. Par exemple, si vous assignez une chaîne de caractères à la variable $var , $var devient une chaîne de caractère. Si vous assignez un nombre entier à $var ,elle devient un entier.41
Les types1 – BooléensC'est le type le plus simple. Un booléen exprime une valeur de vérité. Il peut prendre comme valeur soit TRUE soit FALSE .42<?php$foo= True; // assigne la valeur TRUE 			 à la variable $foo?>
Les types2 – Entiers Les entiers peuvent être spécifiés en base décimale (base 10), en hexadécimale (base 16) ou octale (base 8).
Les entiers peuvent être optionnellement précédés par le signe plus ou moins (+ ou -).
Pour utiliser la notation octale, vous devez préfixer le nombre avec un zéro; pour utiliser la notation hexadécimale, vous devez préfixer le nombre avec 0x 43
Les types44<?php$a = 1234; // nombre entier en base 10$a = -123; // nombre entier négatif$a = 0123;// nombre entier en base 8				//(équivalent à 83 en base 10)$a = 0x1A; //nombre entier en base 16           			//(équivalent à 26 en base 10)?>
Les types4 – NULLLa valeur spéciale NULL représente l'absence de valeur. Une variable avec la valeur NULL n'a pas de valeur.3 – Les chaines de caractère	Les chaînes de caractères sont des séquences de caractères. En PHP, un caractère est un octet et il y en a 256 de possibles.45
Exemple :46<?php$firstName= "Jonathan";$lastName= "Miller";$fullName=$firstName. " " . $lastName;echostrtoupper($fullName);				// JONATHAN MILLERechosubstr($firstName, 0, 3);  				//Jon?>
Les types5 -  Les tableauxUn tableau PHP est une association ordonnée : un type qui fait correspondre des valeurs à des clés . Un tableau peut être créé avec la fonction array .
array prend en argument des structures  :key => value , séparées par des virgules. On parle alors de tableaux associatifs .47
Les typesTableau classique48<?php$array =array(1, 2, 3, 4, 5);echo$array[0];// 1?><?php$arr= array("foo" => "bar", 12 => true);echo$arr["foo"];// barecho$arr[12];// 1?>Tableauassociatif
Les types49<?php// Ces deux tableaux sont identiquesarray(5 => 43, 32, 56, "b" => 12);array(5 => 43, 6 => 32, 7 => 56, "b" => 12);?>
Les types50<?php$arr=array(5 => 1, 12 => 2);$arr[] = 56;// Ceci revient à $arr[13] = 56;$arr["x"] = 42;// Ceci ajoute un nouvel élément 			 	//avec  l'index "x« unset($arr[5]); // Ceci efface un élément du 				   //tableauunset($arr);    	// Ceci efface tout le tableau?>
Les conversions des types51var_dump() : renvoit le contenu de la variable<?php$a = 5.5;// $a contient 5.5 ( type float)$b = (int) 5.5;	// $a contient 5 (type int)var_dump(25/7); // float(3.5714285714286)var_dump((int) (25/7)); // int(3)var_dump(round(25/7)); // float(4)?>
Conversion automatique52<?php$a=5 + "5"  ; $a =5 + "5abc " ;$a =026;$a =059638;$a =5 +"1.5";?>// $a contient 10// $a contient 10// $a contient 22// $a contient 5// $a contient 6.5
La fonction « echo » 53<?phpecho'Ceci est une chaîne simple';// Affiche : Ceci est une chaîne simpleecho'Arnold a coutume de dire : "I\'ll be back" ';// Affiche : Arnold a coutume de dire "I'llbeback"  $nom=Arnold;echo'Bonjour $nom';// Affiche : Bonjour, $nomecho"Bonjour $nom";// Affiche : bonjour Arnold?>
Opérateurs arithmétiqueset logiques54
Opérateurs arithmétiques et logiques++, -- 		Incrémentation/décrémentation
!		Négation
*, /, % 		arithmétique
+, - 		arithmétique
. 			concaténation des chaînes
, >= 	comparaison
==, != 		égalité et différence
AND ou && 	Et logique
OR ou ||		Ou logique55
Structures de contrôles56
Les structures de contrôles1 – L’instruction IF57<?php	if (conditional test){do this;}else{do this;	}?><?phpif (conditional test){		do this;}?>
Les structures de contrôles58<?phpif ($a > $b){ echo"aest plus grand que b"; }?><?phpif ($a > $b) {echo "a est plus grand que b";}else{echo "a est plus petit que b";}?>
Les structures de contrôles2 – L’instruction SWITCH59<?php	switch (condition variable){	case possible result1 : do this; break;	…	case possible resultN: do this; break;	case default; do this;	}?>
Les structures de contrôles60<?phpswitch($i) {    case 0:echo"i égale 0"; break;    case 1:echo"i égale 1"; break;    case 2:echo "i égale 2"; break;}?><?phpif ($i == 0) {echo "i égale 0";} elseif ($i == 1) {echo"i égale 1";} elseif ($i == 2) {echo"i égale 2";}?>
Les structures de contrôles61Le Switch peut également fonctionner avec les chaines de caractère (contrairement à certains langages comme le langage C).<?phpswitch ($i) {case "tarte": echo "iestunetarte"; break;case “glace": echo "iestune glace"; break;case "gateau": echo "iest un gateau"; break;}?>
Structures itératives62
Les structures itératives1 – La boucle WHILE63<?php	while (condition is true){do this;	}?>

PHP (Partie I) Par Mahdi Ben Alaya

  • 1.
    1Lelangage PHP (partieI)Présentation réalisée par : Mahdi BEN ALAYAElève-Ingénieur à l’ENSI & Secrétaire Général du club Junior ENSI Entreprise (2008)Version : 22-11-2009
  • 2.
    RemerciementsAvant de commencer,je tiens à présenter mes sincères remerciements à tous ceux qui ont contribué au bon déroulement de cette formation. Je tiens à remercier particulièrement M. MarouenOmmezzine et M. WassimeAbbessi qui ont assuré les formations Web2.0 et PHP pour les années 2007 et 2008 au sein du club Junior ENSI Entreprise.2
  • 3.
    PlanLe concept Web2.0Lelangage PHPPré-requisPremiers pasLes variables et les typesLes opérateurs arithmétiques et logiquesLes structures de contrôlesLes structures itérativesLes fonctionsExercices3
  • 4.
  • 5.
    Introduction5L’Internet est lafondation sur laquelle est construit le Web. Le Web est le service qui offre sur l’Internet une interface graphique permettant par simple pointage d’accéder à des documents sur le réseau. L’accès aux documents se fait en utilisant un logiciel de consultation (browser, aussi appelé navigateur).
  • 6.
    La page webstatique6Adaptée pour des sites web de petite taille, les sites vitrines, les pages au contenu permanent ou rarement mis à jour.N’est pas adaptée pour des sites dont les informations font l'objet de modifications fréquentes(e-business) , les sites communautaires , les blogs …Pour modifier une page web statique, on utilise des éditeurs html.
  • 7.
    Contenu d’une pageweb statique7page.htmlstyle.cssPage web StatiqueHTML:HyperText Markup Language est un langagebalisépermettant de décrire la structure et la présentation des documents pour le Web .CSS: Cascading Style Sheets permet de partager des Feuilles de Style entre plusieurs documents HTML ou d’avoir plusieurs présentations pour un même contenu.
  • 8.
    Exemple d’une pageweb statique8<HTML> <HEAD><TITLE>titre</TITLE><linkrel="stylesheet" href="style.css" type="text/css" /></HEAD><BODY><h1> Hello World </h1><p> Bonjour les Ensiens</p> <imgsrc="image.jpg" /><br/> <a href="page2.html" >page2</a></BODY></HTML>body{background: green ;}h1{color : white;}p{font-family: Arial;text-align: left; font-weight: bold;text-decoration: none ; font-size: 13px ;}style.csspage.html
  • 9.
    Exemple d’une pageweb statique9Notre Page web Statique
  • 10.
    La page webdynamique10Construite à la demande (On the fly) par le serveur, en fonction de critères spécifiques : le nombre de visiteurs, une opération de calcul, extraire une information de la base de données, etc.Présentation et contenu adaptés de manière interactive, en fonction du lieu, de la date, du produit, de l’internaute, de la météo, de la langue, etcPlateformes et langages pour développer un contenu web dynamique : PHP, J2EE, .NET, Ruby On Rails,…
  • 11.
    Le Concept Web2.011C’estquoi le Web 2.0 ? Est-ce qu’il y a des versions du Web !!?
  • 12.
    Le Concept Web2.012Leconcept Web 2.0 désigne la transition que vit actuellement le World Wide Web. Internet passe aujourd’hui d'une collection de sites Web à une plateforme informatique à part entière, fournissant des applications Web aux utilisateurs.
  • 13.
  • 14.
    Caractéristiques générales14Le sitene doit pas être un jardin secret, c'est-à-dire qu'il doit être aisé de faire rentrer ou sortir des informations du système.Le site doit présenter des aspects de réseaux sociaux. l'utilisateur doit rester propriétaire de ses propres données.le site doit être entièrement utilisable à travers un navigateur standard.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
    Définition23PHP (HypertextPreprocessor) estunlangage de scriptslibre créé en 1994 par RasmusLerdorfqui permet de produire des pages Web dynamiques via  un serveur HTTP.
  • 24.
    CaractéristiquesInterprété: Exécution aumoment de la lectureOpen Source : Gratuit, Evolution et correction des bugs rapides par la communauté Extensible : Répartition en modules,…Orienté Objets : A partir de la version 5Méthode RADPrincipe KISS24Rapid Application DevelopmentKeepit Simple and Stupid ;)
  • 25.
    Le modèle statique1Demandehello.htmlHello.htmlRéponse hello.htmlServeur WEBClient25
  • 26.
    Le modèle dynamique1RequêteSQLScriptHello.phpBDDemande hello.phpRésultatPage htmlStatiqueInterprétationInterpréteurRéponse avec code statiqueServeur d’ApplicationClientServeur BD26
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
    Serveur de basede données : MySQLPlusieurs personnes savent par expérience qu'il n'est pas facile d'installer un serveur Apache et que ça se compliquesi vous voulez y ajouter MySQL et PHP.
  • 32.
  • 33.
    Pré-requisHeureusement des solutions« all-in-one » existent ;-)Easy PHP www.easyphp.orgWAMPwww.wampserver.comXamppwww.apachefriends.org/fr/xampp.html30
  • 34.
  • 35.
    Utilisation de WAMPTélécharger et installer WAMP sur http://www.wampserver.com/32
  • 36.
  • 37.
  • 38.
    Syntaxe générale dulangage35<?php //Corps du script?>Il faut enregistrer notre document sous l’extension .phppour qu’il sera interprété par le serveur comme étant un document php.
  • 39.
    Le « Hello World »36<html><head><title>Test page </title></head><body><?phpecho "<h2>Hello World :)</h2>";?></body></html>
  • 40.
    Les commentaires37Un commentairepermet de vous y retrouver dans votre code. Ce texte est ignoré durant la génération de la page.<?phpecho "Ceci est un test"; // commentaire /* un commentaire */ # commentaire?>
  • 41.
  • 42.
    Les variablesEn PHP,les variables sont représentées par le caractère dollar "$" suivi du nom de la variable.$Nom_de_la_variableLe nom est sensible à la casse ( $x != $X ) Un nom de variable valide doit commencer par : une lettre ou un tiret bas (_), suivi de : lettres, chiffres ou tirets bas.39
  • 43.
    Exemples<?php$name;$_name;$1name;$_1name ;$NaMe3 ;?>40//Valide// Valide// Non Valide// Valide// Valide
  • 44.
    Les typesPHP nenécessite pas de déclaration explicite du type d'une variable. Le type est déterminé par le contexte d'utilisation. Par exemple, si vous assignez une chaîne de caractères à la variable $var , $var devient une chaîne de caractère. Si vous assignez un nombre entier à $var ,elle devient un entier.41
  • 45.
    Les types1 –BooléensC'est le type le plus simple. Un booléen exprime une valeur de vérité. Il peut prendre comme valeur soit TRUE soit FALSE .42<?php$foo= True; // assigne la valeur TRUE à la variable $foo?>
  • 46.
    Les types2 –Entiers Les entiers peuvent être spécifiés en base décimale (base 10), en hexadécimale (base 16) ou octale (base 8).
  • 47.
    Les entiers peuventêtre optionnellement précédés par le signe plus ou moins (+ ou -).
  • 48.
    Pour utiliser lanotation octale, vous devez préfixer le nombre avec un zéro; pour utiliser la notation hexadécimale, vous devez préfixer le nombre avec 0x 43
  • 49.
    Les types44<?php$a =1234; // nombre entier en base 10$a = -123; // nombre entier négatif$a = 0123;// nombre entier en base 8 //(équivalent à 83 en base 10)$a = 0x1A; //nombre entier en base 16 //(équivalent à 26 en base 10)?>
  • 50.
    Les types4 –NULLLa valeur spéciale NULL représente l'absence de valeur. Une variable avec la valeur NULL n'a pas de valeur.3 – Les chaines de caractère Les chaînes de caractères sont des séquences de caractères. En PHP, un caractère est un octet et il y en a 256 de possibles.45
  • 51.
    Exemple :46<?php$firstName= "Jonathan";$lastName="Miller";$fullName=$firstName. " " . $lastName;echostrtoupper($fullName); // JONATHAN MILLERechosubstr($firstName, 0, 3); //Jon?>
  • 52.
    Les types5 - Les tableauxUn tableau PHP est une association ordonnée : un type qui fait correspondre des valeurs à des clés . Un tableau peut être créé avec la fonction array .
  • 53.
    array prend enargument des structures :key => value , séparées par des virgules. On parle alors de tableaux associatifs .47
  • 54.
    Les typesTableau classique48<?php$array=array(1, 2, 3, 4, 5);echo$array[0];// 1?><?php$arr= array("foo" => "bar", 12 => true);echo$arr["foo"];// barecho$arr[12];// 1?>Tableauassociatif
  • 55.
    Les types49<?php// Cesdeux tableaux sont identiquesarray(5 => 43, 32, 56, "b" => 12);array(5 => 43, 6 => 32, 7 => 56, "b" => 12);?>
  • 56.
    Les types50<?php$arr=array(5 =>1, 12 => 2);$arr[] = 56;// Ceci revient à $arr[13] = 56;$arr["x"] = 42;// Ceci ajoute un nouvel élément //avec l'index "x« unset($arr[5]); // Ceci efface un élément du //tableauunset($arr); // Ceci efface tout le tableau?>
  • 57.
    Les conversions destypes51var_dump() : renvoit le contenu de la variable<?php$a = 5.5;// $a contient 5.5 ( type float)$b = (int) 5.5; // $a contient 5 (type int)var_dump(25/7); // float(3.5714285714286)var_dump((int) (25/7)); // int(3)var_dump(round(25/7)); // float(4)?>
  • 58.
    Conversion automatique52<?php$a=5 +"5" ; $a =5 + "5abc " ;$a =026;$a =059638;$a =5 +"1.5";?>// $a contient 10// $a contient 10// $a contient 22// $a contient 5// $a contient 6.5
  • 59.
    La fonction « echo » 53<?phpecho'Ceciest une chaîne simple';// Affiche : Ceci est une chaîne simpleecho'Arnold a coutume de dire : "I\'ll be back" ';// Affiche : Arnold a coutume de dire "I'llbeback"  $nom=Arnold;echo'Bonjour $nom';// Affiche : Bonjour, $nomecho"Bonjour $nom";// Affiche : bonjour Arnold?>
  • 60.
  • 61.
    Opérateurs arithmétiques etlogiques++, -- Incrémentation/décrémentation
  • 62.
  • 63.
    *, /, % arithmétique
  • 64.
  • 65.
  • 66.
  • 67.
    ==, != égalitéet différence
  • 68.
    AND ou && Et logique
  • 69.
    OR ou || Oulogique55
  • 70.
  • 71.
    Les structures decontrôles1 – L’instruction IF57<?php if (conditional test){do this;}else{do this; }?><?phpif (conditional test){ do this;}?>
  • 72.
    Les structures decontrôles58<?phpif ($a > $b){ echo"aest plus grand que b"; }?><?phpif ($a > $b) {echo "a est plus grand que b";}else{echo "a est plus petit que b";}?>
  • 73.
    Les structures decontrôles2 – L’instruction SWITCH59<?php switch (condition variable){ case possible result1 : do this; break; … case possible resultN: do this; break; case default; do this; }?>
  • 74.
    Les structures decontrôles60<?phpswitch($i) { case 0:echo"i égale 0"; break; case 1:echo"i égale 1"; break; case 2:echo "i égale 2"; break;}?><?phpif ($i == 0) {echo "i égale 0";} elseif ($i == 1) {echo"i égale 1";} elseif ($i == 2) {echo"i égale 2";}?>
  • 75.
    Les structures decontrôles61Le Switch peut également fonctionner avec les chaines de caractère (contrairement à certains langages comme le langage C).<?phpswitch ($i) {case "tarte": echo "iestunetarte"; break;case “glace": echo "iestune glace"; break;case "gateau": echo "iest un gateau"; break;}?>
  • 76.
  • 77.
    Les structures itératives1– La boucle WHILE63<?php while (condition is true){do this; }?>