PHP (Partie I) Par Mahdi Ben Alaya

Preview:

DESCRIPTION

PARTIE 1 : Développez une application web dynamique et interactive : Comprendre le concept Web2.0. Dégager les différences entre le modèle statique et le modèle dynamique. Comprendre les balises HTML et CSS. Apprendre le langage PHP : Les Variables, les types, les structures de contrôle, les structure itérative et les fonctions. Tout ceci accompagné par des exemples et exercices.

Citation preview

1

Le langage 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

Remerciements

• Avant 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. Marouen Ommezzine et M. Wassime Abbessi qui ont assuré les formations Web2.0 et PHP pour les années 2007 et 2008 au sein du club Junior ENSI Entreprise.

2

Plan•Le concept Web2.0•Le langage PHP•Pré-requis•Premiers pas•Les variables et les types•Les opérateurs arithmétiques et

logiques•Les structures de contrôles•Les structures itératives•Les fonctions•Exercices

3

4

Le Concept Web2.0

Introduction

5

• L’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 statique

6

• Adapté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 statique

7

• HTML : HyperText Markup Language est un langage balisé 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.

page.html style.cssPage web Statique

Exemple d’une page web statique

8

<HTML> <HEAD>

<TITLE>titre</TITLE><link rel="stylesheet" href="style.css" type="text/css" />

</HEAD><BODY>

<h1> Hello World </h1><p> Bonjour les

Ensiens</p><img src="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 statique

9

Notre Page web Statique

La page web dynamique

10

• Construite à 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, etc

• Plateformes et langages pour développer un contenu web dynamique : PHP, J2EE, .NET, Ruby On Rails,…

Le Concept Web2.0

11

C’est quoi le Web 2.0 ? Est-ce qu’il y a des versions

du Web !!?

Le Concept Web2.0

12

•Le 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.0

13

Caractéristiques générales

14

• Le 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.0

15

Le Web2.0

16

17

Evolution

du Web

18

Les Outils

Web2.0

19 http://fr.eyeos.org

Conclusion

20

Conclusion

21

22

Le langage PHP

Définition

23

•PHP (Hypertext Preprocessor) est un langage de scripts libre créé en 1994 par Rasmus Lerdorf qui permet de produire des pages Web dynamiques via  un serveur HTTP.

Caractéristiques

•Interprété : Exécution au moment de la lecture

•Open Source : Gratuit, Evolution et correction des bugs rapides par la communauté

•Extensible : Répartition en modules,…•Orienté Objets : A partir de la version 5

•Méthode RAD•Principe KISS24

Keep it Simple and Stupid ;)

Rapid Application Development

25

Demande hello.html

Hello.html

1Le modèle statique

Réponse hello.html

Serveur WEBClient

26

Demande

hello.php

BD

Script

Hello.php

Requête SQL

Résultat

InterprétationPage html

Statique

1Le modèle dynamique

Réponse avec

code statique

Interpréteur

Serveur d’ApplicationClient Serveur BD

Pré-requis

27

Pré-requis

28

•Nous avons besoin d’un • Serveur d’application : Apache, • Interpréteur : Un moteur PHP,• Serveur de base de données : MySQL

•Plusieurs personnes savent par expérience qu'il n'est pas facile d'installer un serveur Apache et que ça se complique si vous voulez y ajouter MySQL et PHP.

Pré-requis

29

BD

Script

Hello.php

Interpréteur

Serveur d’applicationClient Serveur BD

FireFox

NotePad ++

Moteur PHP

MySQL

Apache

Pré-requis

•Easy PHP www.easyphp.org

•WAMP www.wampserver.com

•Xampp www.apachefriends.org/fr/xampp.html

30

Heureusement des solutions « all-in-one » existent ;-)

Installation de WAMP

31

Utilisation de WAMP

•Télécharger et installer WAMP sur http://www.wampserver.com/

32

Interface de WAMP

33

http://localhost/

Premiers pas avec PHP

34

Syntaxe générale du langage

35

•Il faut enregistrer notre document sous l’extension .php pour qu’il sera interprété par le serveur comme étant un document php.

<?php

//Corps du script

?>

Le « Hello World »

36

<html><head>

<title> Test page </title></head><body>

<?phpecho "<h2>Hello World

:)</h2>";?>

</body></html>

Les commentaires

37

• Un 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 Types

38

Les variables• En PHP, les variables sont représentées par

le caractère dollar "$" suivi du nom de la variable.

$Nom_de_la_variable

• Le 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

40

<?php

$name ;

$_name ;

$1name ;

$_1name ;

$NaMe3 ;?>

// Valide

// Valide

// Non Valide

// Valide

// Valide

Les types

• PHP 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éens• C'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 types

44

<?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 types

3 – Les chaines de caractèreLes 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

4 – NULLLa valeur spéciale NULL représente l'absence de valeur. Une variable avec la valeur NULL n'a pas de valeur.

Exemple :

46

<?php$firstName = "Jonathan"; $lastName = "Miller";

$fullName = $firstName . " " . $lastName;

echo strtoupper($fullName);// JONATHAN MILLER

echo substr($firstName, 0, 3); //Jon?>

Les types

5 - Les tableaux• Un 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 types

Tableau classiqu

e

48

<?php$arr = array("foo" => "bar", 12 => true);echo $arr["foo"]; // barecho $arr[12]; // 1?>

<?php$array = array(1, 2, 3, 4, 5);echo $array[0]; // 1?>

Tableauassociatif

Les types

49

<?php// Ces deux tableaux sont identiquesarray(5 => 43, 32, 56, "b" => 12);array(5 => 43, 6 => 32, 7 => 56, "b" => 12);?>

Les types

50

<?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 //tableau

unset($arr); // Ceci efface tout le tableau?>

Les conversions des types

51

<?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)

?>

var_dump() : renvoit le contenu de la variable

Conversion automatique

52

<?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'll be back"  $nom=Arnold;echo 'Bonjour $nom';// Affiche : Bonjour, $nomecho "Bonjour $nom";// Affiche : bonjour Arnold?>

Opérateurs arithmétiqueset logiques

54

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 logique

55

Structures de contrôles

56

Les structures de contrôles

1 – L’instruction IF

57

<?phpif (conditional test)

{do this;

}?>

<?phpif (conditional test){

do this;}else{

do this;}

?>

Les structures de contrôles

58

<?phpif ($a > $b) { echo"a est plus grand que b"; }?><?php

if ($a > $b) { echo "a est plus grand que b";}else{ echo "a est plus petit que b";}?>

Les structures de contrôles

2 – L’instruction SWITCH

59

<?phpswitch (condition variable){

case possible result1 : do this; break;

…case possible resultN : do this;

break;case default; do this;}

?>

Les structures de contrôles

60

<?phpif ($i == 0) { echo "i égale 0";} elseif ($i == 1) { echo "i égale 1";} elseif ($i == 2) { echo "i égale 2";}?>

<?phpswitch ($i) { case 0: echo "i égale 0"; break; case 1: echo "i égale 1"; break; case 2: echo "i égale 2"; break;}?>

Les structures de contrôles

61

Le Switch peut également fonctionner avec les chaines de caractère (contrairement à certains langages comme le langage C).

<?phpswitch ($i) {

case "tarte": echo "i est une tarte"; break;case “glace": echo "i est une glace"; break;case "gateau": echo "i est un gateau"; break;

}?>

Structures itératives

62

Les structures itératives1 – La boucle WHILE

63

<?phpwhile (condition is true){

do this;}

?>

Les structures itératives

64

<?php$num = 11;$upperLimit = 10;$lowerLimit = 1;while ($lowerLimit <= $upperLimit){

echo "$num x $lowerLimit = " . ($num *

$lowerLimit);$lowerLimit++;

}?>

Les structures itératives

2 – La boucle DO

65

<?phpdo{

do this;} while (condition is true)

?>

Avec la boucle do, on est sûr que les instructions sont exécutées au moins une fois.

Les structures itératives

3 – La boucle FOR

66

<?phpfor (initialize i; condition; update

i){do this;

}?>

Les structures itératives

67

<?phpfor ($x = 2; $x <= 100; $x+

+){echo "$x <br/>";

}?>

Les structures itératives4 – La boucle FOREACH

68

<?phpforeach (array_expression as $value){do

this;}?><?php

foreach (array_expression as $key =>$value){

do this;}

?>

Les structures itératives

69

<?php$a = array ("un" => 1,"deux" => 2,"trois" => 3,"dix-sept" => 17);foreach ($a as $k => $v) { echo "\$a[$k] => $v.\n";}?>

$arr = array(1, 2, 3, 4);foreach ($arr as $value) {

echo $value ;}

Les fonctions

70

Les fonctions

71

<?phpfunction nomFonction($arg_1, $arg_2, $arg_n) {

do this;return $retval;

}?>

Les fonctions

72

<?php // Definition de la fonction

function getTriangleArea($base, $height){

$area = $base * $height * 0.5;return $area;

}

// Appel de la functionecho 'La surface est', getTriangleArea(10, 50);?>

Les fonctions

73

<?php function affiche_bjr(){

for ($i = 0; $i < 5; $i++) echo "Bonjour! <br/>";

//Afficher 5 fois « Bonjour! » } affiche_bjr(); //Appel à la fonction?>

Exercices

74

Exercice

75

Créez une page web dynamique avec un contenu du jour différent de celui de la nuit. Vous pouvez utiliser la fonction php Date('H') qui donne l’heure actuelle et vous disposez des images « jour.jpg » et « nuit.jpg » 

Jour Nuit

Solution

76

<HTML> <HEAD>

<TITLE>Exercice</TITLE></HEAD><BODY>

<?php if ( date(‘H') < 20 ) {

echo '<h1> C’est le jour</h1><br/>

<img src= " jour.jpg" />' ;}else{

echo '<h1> C’est la nuit</h1><br/>

<img src= " jour.jpg" />' ; }

?></BODY></HTML> 

Merci pour votre attention

77

Recommended