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

HELHA informatique de gestion

Présentations similaires


Présentation au sujet: "HELHA informatique de gestion"— Transcription de la présentation:

1 HELHA informatique de gestion
PHP- Table des matières Introduction Les données Les instructions de contrôle Les chaînes de caractères Les tableaux Les formulaires Les fonctions Les dates Les fichiers Les cookies Les sessions Les s PHP chap 1 introduction PHP

2 HELHA informatique de gestion
PHP- INTRODUCTION Qu’est-ce que PHP ? Structure d’un fichier HTML Rôle de PHP Cycle de vie d’une page PHP Inclusion de fichiers externes Ajout de commentaires Séparateur d’instructions – bloc d’instructions Minuscules-majuscules PHP chap 1 introduction PHP

3 PHP- INTRODUCTION 1. Qu’est-ce que PHP ?
PHP est : - un langage de programmation. - destiné à être interprété sur un serveur WEB - offre la possibilité de développer des sites WEB dynamiques Ce langage permet d’insérer des instructions de programmation puissantes dans des pages de type HTML. Une page dynamique PHP est un document HTML envoyé par le serveur vers le poste client. Exemple : nous allons créer un fichier « texte » appelé template contenant des tags HTML classiques et de la programmation PHP. Les tags de début et de fin du « mode php » (<?php et ?>) sont interprétés par le serveur avant que le document soit envoyé au client qui est à l’origine de la requête. PHP chap 1 introduction

4 PHP- INTRODUCTION 2. Structure d’un fichier HTML : <html>
<head> <title> premier programme PHP</title> </head> <body> <?php echo  "<h1> hello world </h1>" ; echo "<h2> bienvenue sur le site de l’isat </h2>" ; ?>  </body> </html> PHP chap 1 introduction

5 PHP- INTRODUCTION 3. Rôle de PHP
Le langage PHP possède les mêmes fonctionnalités que les autres langages (C, C++, Perl,…) : - collecte et analyse de données - génération dynamique de pages Web - envoi et réception de cookies - gestion de sessions… Rôles de PHP : Serveur Web client DB PHP PHP chap 1 introduction

6 PHP- INTRODUCTION 4. Cycle de vie d’une page PHP :
- envoi d’une requête HTTP par le navigateur client vers le serveur ex : - interprétation par le serveur du code PHP contenu dans la page - envoi par le serveur d’un fichier dont le contenu est purement HTML PHP chap 1 introduction

7 PHP- INTRODUCTION 5. Inclure des fichiers externes
Cela permet de modulariser le code, de créer une bibliothèque de fonctions d’utilisation courante. Les fichiers de code php peuvent avoir l’une des extensions suivantes : .php .inc .inc.php PHP chap 1 introduction

8 PHP- INTRODUCTION 6. Ajout de commentaires // ceci est un commentaire
sur plusieurs lignes */ # commentaire 7. Séparateur d’instructions – bloc d’instructions Séparateur ; { bloc } 8. minuscules-majuscules Php fait la distinction entre les caractères min et maj. PHP chap 1 introduction

9 PHP- INTRODUCTION <html> <head>
<title> premier programme PHP</title> </head> <body> <?php $name="Paul"; $Name="Pierre"; echo  " hello $name,<br/> " ; echo  " où est $Name ? " ; ?>  </body> </html> PHP chap 1 introduction

10 PHP- VARIABLES – CONSTANTES - TYPES
HELHA informatique de gestion PHP- VARIABLES – CONSTANTES - TYPES Les variables Les constantes Les types de données Les données numériques Les booléens Les chaînes PHP chap 2 - types de données PHP chap 1 Principes de programmation 10

11 PHP- VARIABLES – CONSTANTES - TYPES
HELHA informatique de gestion PHP- VARIABLES – CONSTANTES - TYPES 7. Les tableaux Les objets Le type ressource Le type NULL PHP chap 2 - types de données PHP chap 1 Principes de programmation 11

12 PHP- VARIABLES – CONSTANTES - TYPES
HELHA informatique de gestion PHP- VARIABLES – CONSTANTES - TYPES Les variables Les noms de variables : - commencent par $ suivi de lettres min-maj, chiffres, _ - sont sensibles à la casse - ne sont pas déclarées On peut créer des variables n’importe où. La déclaration des variables n’est pas obligatoire. L’initialisation des variables n’est pas obligatoire. <?php $a = 1; $b = $a + 5; $c = "hello "; $c = $b = $a = 1; ?> PHP chap 2 - types de données PHP chap 1 Principes de programmation 12

13 PHP- VARIABLES – CONSTANTES - TYPES
HELHA informatique de gestion PHP- VARIABLES – CONSTANTES - TYPES Les variables - on ne déclare pas le type d’une variable, c’est sa valeur qui détermine son type. - excepté lorsqu’elle est déclarée dans une fonction, la portée d’une variable est GLOBALE (elle concerne tout le script à partir de sa déclaration) PHP chap 2 - types de données PHP chap 1 Principes de programmation 13

14 PHP- VARIABLES – CONSTANTES - TYPES
HELHA informatique de gestion PHP- VARIABLES – CONSTANTES - TYPES Les variables - on ne déclare pas le type d’une variable, c’est sa valeur qui détermine son type. - excepté lorsqu’elle est déclarée dans une fonction, la portée d’une variable est GLOBALE (elle concerne tout le script à partir de sa déclaration) PHP chap 2 - types de données PHP chap 1 Principes de programmation 14

15 PHP- VARIABLES – CONSTANTES - TYPES
HELHA informatique de gestion PHP- VARIABLES – CONSTANTES - TYPES Les variables exemple <html> <head> <title> e2_1.PHP</title> </head> <body> <?php $name="Paul"; $Name="Pierre"; echo  " hello $name,<br/> " ; echo  " où est $Name ? " ; ?>  </body> </html> PHP chap 2 - types de données PHP chap 1 Principes de programmation 15

16 PHP- VARIABLES – CONSTANTES - TYPES
HELHA informatique de gestion PHP- VARIABLES – CONSTANTES - TYPES Les variables exemple <html> <head> <title> e2_2.PHP</title> </head> <body> <?php $color1 = "#ff0000"; $color2 = "#00ff00"; $color3 = "#0000ff"; echo "<font color=\"$color1\">red</font><br/>"; echo "<font color=\"$color2\">green</font><br/>"; echo "<font color=\"$color3\">blue</font><br/>";?>  </body> </html> PHP chap 2 - types de données PHP chap 1 Principes de programmation 16

17 PHP- VARIABLES – CONSTANTES - TYPES
HELHA informatique de gestion PHP- VARIABLES – CONSTANTES - TYPES Les variables prédéfinies les variables prédéfinies contiennent des infos sur le serveur et sur les données qui peuvent transiter entre le poste client et le serveur. Exemple : les valeurs saisies dans un formulaire (ch 6) $GLOBALS $_COOKIE $_ENV $_FILES $_GET $_POST $_REQUEST $_SERVER $_SESSION PHP chap 2 - types de données chap 1 Principes de programmation PHP 17

18 PHP- VARIABLES – CONSTANTES - TYPES
HELHA informatique de gestion PHP- VARIABLES – CONSTANTES - TYPES PHP chap 2 - types de données PHP chap 1 Principes de programmation 18

19 PHP- VARIABLES – CONSTANTES - TYPES
HELHA informatique de gestion PHP- VARIABLES – CONSTANTES - TYPES 2. Les constantes Constantes personnalisées Constantes prédéfinies Sensible à la casse ou non // définition define (  "PI ", ,TRUE) //utilisation echo  "la constante PI vaut " ,PI, "</br>« ;  Définies au fur et à mesure des besoins non précédée de $, donc la séparer avec  , de ce qui précède dans echo PHP chap 2 - types de données PHP chap 1 Principes de programmation 19

20 PHP- VARIABLES – CONSTANTES - TYPES
HELHA informatique de gestion PHP- VARIABLES – CONSTANTES - TYPES 3. Les types de données Types de base Types composés Types spéciaux - Entiers (base 10,8,16) (integer) - Flottants (double ou float) chaînes (string) - booléens (boolean) - Type ressource - Type null - Tableaux (array) - Objets (object) PHP chap 2 - types de données PHP chap 1 Principes de programmation 20

21 PHP- VARIABLES – CONSTANTES - TYPES
HELHA informatique de gestion PHP- VARIABLES – CONSTANTES - TYPES 3. Les types de données - déterminer le type : string gettype ($mavar) - vérifier le type d’une variable : is_integer ($var) … Retourne une chaîne contenant le type de la variable $var = 73; if (is_int ($var)) { $var++; } PHP chap 2 - types de données chap 1 Principes de programmation PHP 21

22 PHP- VARIABLES – CONSTANTES - TYPES
HELHA informatique de gestion PHP- VARIABLES – CONSTANTES - TYPES 3. Les types de données convertir le type d’une variable : $result = (type-desire) $var - contrôler l’état d’une variable : lors de l’envoi de données d’un formulaire vers le serveur, le script qui reçoit les infos doit pouvoir détecter l’existence d’une réponse dans les champs du formulaire. $var= "3.52 km" ; $var2=(double)$var; echo  "$var2"; PHP chap 2 - types de données chap 1 Principes de programmation PHP 22

23 PHP- VARIABLES – CONSTANTES - TYPES
HELHA informatique de gestion PHP- VARIABLES – CONSTANTES - TYPES 3. Les types de données - contrôler l’état d’une variable : boolean isset ($var) boolean empty ($var) - FALSE si $var non initialisée si valeur Null - TRUE si valeur quelconque - TRUE si $var non initialisée si valeur Null ou 0 ou chaîne "0" - FALSE si valeur quelconque PHP chap 2 - types de données chap 1 Principes de programmation PHP 23

24 PHP- VARIABLES – CONSTANTES - TYPES
HELHA informatique de gestion PHP- VARIABLES – CONSTANTES - TYPES 4.1 Les entiers en 32bits de – 231 à base base 8 base 16 4.2 Les flottants précision de 14 chiffres 4.3 Les opérateurs affectation numériques $int = 1245; $int = -18; $oct = 01245; echo $oct; $hex = OxFAC7; Echo $hex; Valeur décimale affichée $dbl = ; $dbl = E3; += -= *= /= %= .= * / % PHP chap 2 - types de données PHP chap 1 Principes de programmation 24

25 PHP- VARIABLES – CONSTANTES - TYPES
HELHA informatique de gestion PHP- VARIABLES – CONSTANTES - TYPES 4.4 Les fonctions mathématiques PHP chap 2 - types de données PHP chap 1 Principes de programmation 25

26 PHP- VARIABLES – CONSTANTES - TYPES
HELHA informatique de gestion PHP- VARIABLES – CONSTANTES - TYPES PHP chap 2 - types de données PHP chap 1 Principes de programmation 26

27 PHP- VARIABLES – CONSTANTES - TYPES
HELHA informatique de gestion PHP- VARIABLES – CONSTANTES - TYPES PHP chap 2 - types de données PHP chap 1 Principes de programmation 27

28 PHP- VARIABLES – CONSTANTES - TYPES
HELHA informatique de gestion PHP- VARIABLES – CONSTANTES - TYPES 5.1 Les booléens affiche 1 5.2 règles d évaluation false true $a = 80; $b= ($a<95); echo $b $bool = TRUE; $bool = FALSE; $a=15; If ($a)… True si $a existe et a une valeur !=0 - Mot clé FALSE - entier = 0 ou Double = String = " 0" - var de type NULL - var non initialisée - tableau vide - expr logique fausse - toutes les autres possibilités y compris - entier = chaine " false " - var de type ressource PHP chap 2 - types de données PHP chap 1 Principes de programmation 28

29 PHP- VARIABLES – CONSTANTES - TYPES
HELHA informatique de gestion PHP- VARIABLES – CONSTANTES - TYPES 5.3 Les opérateurs de comparaison logiques == != ou < > < <= > >= === !== OR || XOR AND && ! Teste l’identité - des valeurs - des types - équivalents -pas même priorité PHP chap 2 - types de données chap 1 Principes de programmation PHP 29

30 PHP- VARIABLES – CONSTANTES - TYPES
HELHA informatique de gestion PHP- VARIABLES – CONSTANTES - TYPES 6.1 Les chaînes 2 types de délimiteurs : apostrophes simples ‘ apostrophes doubles « 6.2 La concaténation symbole . - Variables remplacées par leur valeur - car \ permet de protéger un car spécial (échappement) - Variables non substituées - car \ sans effet echo " <a href =\ " p2.html\ " >page suivante</a> "; \’ affiche ‘ \ " affiche " \ $ affiche $ \\ affiche \ \ n saut de ligne \r retour chariot \t tabulation horizontale Les " de l’attribut HTML href sont protégés par \  PHP chap 2 - types de données chap 1 Principes de programmation PHP 30

31 PHP- VARIABLES – CONSTANTES - TYPES
HELHA informatique de gestion PHP- VARIABLES – CONSTANTES - TYPES <?php   # Assignation d'une chaîne de caractères   $phrase = "Hello World";   echo "$phrase<br>";   # Ajout d'une nouvelle chaîne de caractères   $phrase = $phrase . " this is a PHP test\n"; # L'expression suivante donnera : <p>Number: 9</p> $num = 9; $str = "<p>Number: $num</p>";   echo "$str<br>"; ?> PHP chap 2 - types de données PHP chap 1 Principes de programmation 31

32 PHP- VARIABLES – CONSTANTES - TYPES
HELHA informatique de gestion PHP- VARIABLES – CONSTANTES - TYPES <?php   # L'expression suivante donnera : <p>Number: $num</p> $num = 9; $str = '<p>Number: $num</p>'; echo "$str<p>"; # Récupération du premier caractère d'une chaîne $str = 'This is a test.'; $first = $str[0]; echo "$first<p>"; # Récupération du dernier caractère d'une chaîne $str = 'This is still a test.'; $last = $str[strlen($str)-1]; echo "$last<p>"; ?> PHP chap 2 - types de données PHP chap 1 Principes de programmation 32

33 PHP- VARIABLES – CONSTANTES - TYPES
HELHA informatique de gestion PHP- VARIABLES – CONSTANTES - TYPES 7.1 Les tableaux - PHP supporte les tableaux scalaires associatifs Tableaux scalaires : Quand les éléments d'un tableau peuvent être sélectionnés via des indices $members[2]. - Tableaux associatifs : Quand les éléments d'un tableau peuvent être sélectionnés via des clés (représentées par des valeurs quelconques) $users["admin"]. On peut définir des tableaux à une ou plusieurs dimensions ici tableaux à 1 dim (suite cfr chap 5) PHP chap 2 - types de données PHP chap 1 Principes de programmation 33

34 PHP- VARIABLES – CONSTANTES - TYPES
HELHA informatique de gestion PHP- VARIABLES – CONSTANTES - TYPES 7.2 Les tableaux scalaires $tab[0] = 20; $tab[1] = 12; $tab[10] = 28; $tab[ ] = 15; echo "nombre d’éléments :" , count ($tab); echo " la deuxième valeur est : $tab[1] <br/> "; 7.3 Les tableaux associatifs (e2_3.php) $utilis [" prenom "] = "stephane"; $utilis [" nom "] = "Dumont"  ; $utilis [" privilege "] = "admin" ; echo " le nom est : {$utilis[" nom "] } <br/> "; echo " le nom est " , $utilis [" nom "], "<br/> ";   $utilis Stéphane Dumont admin PHP chap 2 - types de données chap 1 Principes de programmation PHP 34

35 PHP- VARIABLES – CONSTANTES - TYPES
HELHA informatique de gestion PHP- VARIABLES – CONSTANTES - TYPES Exemple d’utilisation de tableaux (e2_4.php) $tab["php"] = "php.net"; $tab["mysql"] = "mysql.com"; $tab["xhtml"] = "w3.org"; echo "<h2> mes liens préférés </h2>"; echo "<ul> <li><a href=\" title=\" le site du php.net\">PHP</a> </li>"; echo "<li> <a href=\" title=\" le site du mysql.com\">MySql</a> </li>"; echo "<li> <a href=\" title=\" le site du W3C\">XHTML</a> </li> </ul>"; PHP chap 2 - types de données chap 1 Principes de programmation PHP 35

36 PHP- VARIABLES – CONSTANTES - TYPES
HELHA informatique de gestion PHP- VARIABLES – CONSTANTES - TYPES 8 Les objets (cfr chap 9) Le type ressource (cfr chap 15) utilisé pour les connexions aux bases de données Le type NULL attribué à une variable qui n’a pas de contenu qui a été initialisée avec NULL dès qu’une valeur est donnée à la variable, elle prend le type correspondant. Règles : 1) une var contenant une chaîne vide ou la valeur "0" a le type string. 2) une var contenant la valeur 0 a le type integer. PHP chap 2 - types de données PHP chap 1 Principes de programmation 36

37 PHP- INSTRUCTIONS DE CONTROLE
HELHA informatique de gestion PHP- INSTRUCTIONS DE CONTROLE Les instructions conditionnelles 1.1 if 1.2 if else 1.3 opérateur ? 1.4 switch Les instructions de boucle 2.1 for 2.2 while 2.3 do while 2.4 foreach La gestion des erreurs 3.1 suppression des messages d’erreur PHP chap 3 - instructions de contrôle PHP chap 1 Principes de programmation 37

38 PHP- VARIABLES – CONSTANTES - TYPES
HELHA informatique de gestion PHP- VARIABLES – CONSTANTES - TYPES 1.1 if if (condition) instruction; if (condition) { // bloc } 1.2 if else if (condition) { else { // bloc } PHP chap 3 - instructions de contrôle PHP chap 1 Principes de programmation 38

39 PHP- VARIABLES – CONSTANTES - TYPES
HELHA informatique de gestion PHP- VARIABLES – CONSTANTES - TYPES <?php // e3_1.php $prix = 35; if ($prix > 100) { echo " pour un achat de $prix &euro , la remise est de <b>15%</b><br/>"; $pnet = $prix * 0.85; echo " le prix net est de $pnet"; } elseif ($prix > 50) echo " pour un achat de $prix &euro , la remise est de <b>1O%</b><br/>"; $pnet = $prix * 0.90; PHP chap 3 - instructions de contrôle PHP chap 1 Principes de programmation 39

40 PHP- VARIABLES – CONSTANTES - TYPES
HELHA informatique de gestion PHP- VARIABLES – CONSTANTES - TYPES else { echo " pour un achat de $prix &euro , la remise est de <b>O5%</b><br/>"; $pnet = $prix * 0.95; echo " le prix net est de $pnet"; } ?>  1.3 opérateur ? <?php //e3_2.php $ch=" bonjour "; $sexe="M"; $ch .= ($sexe=="F") ? "Madame" : "Monsieur"; echo "<h2>$ch</h2> <br/>"; ?> PHP chap 3 - instructions de contrôle PHP chap 1 Principes de programmation 40

41 PHP- VARIABLES – CONSTANTES - TYPES
HELHA informatique de gestion PHP- VARIABLES – CONSTANTES - TYPES 1.4 switch <?php $dept=75; switch ($dept) { case 75: echo "<h2>Paris</h2> <br/>"; break; case 83: echo "<h2>Var</h2> <br/>"; default : echo "departement inconnu"; } ?> PHP chap 3 - instructions de contrôle PHP chap 1 Principes de programmation 41

42 PHP- VARIABLES – CONSTANTES - TYPES
HELHA informatique de gestion PHP- VARIABLES – CONSTANTES - TYPES 2.1 La boucle for <?php //e3_4.php for ($i=1;$i<7;$i++) { echo "<h$i>titre de niveau $i</h$i> "; } ?> <?php //e3_5.php for ($i=1,$j=9;$i<10,$j>0;$i++,$j--) echo "<span style =\" border-style:double;border-width:3;\"> $i + $j = 10</span> "; PHP chap 3 - instructions de contrôle PHP chap 1 Principes de programmation 42

43 PHP- VARIABLES – CONSTANTES - TYPES
HELHA informatique de gestion PHP- VARIABLES – CONSTANTES - TYPES 2.2 La boucle while <?php //e3_6.php $n=1; while ($n%7!=0) { $n = rand (1,100); echo $n,"  "; } ?> PHP chap 3 - instructions de contrôle PHP chap 1 Principes de programmation 43

44 PHP- VARIABLES – CONSTANTES - TYPES
HELHA informatique de gestion PHP- VARIABLES – CONSTANTES - TYPES 2.3 La boucle do while <?php //e3-7.php do { $n = rand (1,100); echo $n,"  "; } while ($n%7!=0); ?> PHP chap 3 - instructions de contrôle PHP chap 1 Principes de programmation 44

45 PHP- VARIABLES – CONSTANTES - TYPES
HELHA informatique de gestion PHP- VARIABLES – CONSTANTES - TYPES 2.4 La boucle foreach Utilisée pour parcourir l’ensemble des éléments d’un tableau. Pour lire les valeurs : foreach ($tableau as $valeur) { //bloc utilisant l’élément $valeur } Pour lire les valeurs et les indices : foreach ($tableau as $indice=>$valeur) //bloc utilisant l’élément courant - $valeur contient successivement les valeurs du tableau $valeur contient successivement les valeurs du tableau - $indice contient successivement l’indice PHP chap 3 - instructions de contrôle chap 1 Principes de programmation PHP 45

46 PHP- VARIABLES – CONSTANTES - TYPES
HELHA informatique de gestion PHP- VARIABLES – CONSTANTES - TYPES <?php //e3_8.php for ($i=0;$i<7;$i++) { $tab [$i] = pow (2,$i); } foreach ($tab as $ind => $val) echo "2 exposant $ind vaut $val <br/>"; ?> Rem : $tab [$i][0] permet de récupérer la première lettre de la chaîne de caractères contenue dans tab[$i]. Count($tab) retourne le nombre d’éléments contenus dans $tab PHP chap 3 - instructions de contrôle PHP chap 1 Principes de programmation 46

47 PHP- VARIABLES – CONSTANTES - TYPES
HELHA informatique de gestion PHP- VARIABLES – CONSTANTES - TYPES 3 La gestion des erreurs Un bon script ne doit pas générer d’erreurs. Les actions de l’utilisateur peuvent générer des erreurs : Saisies erronées provoquant l’arrêt du script (ex : division par 0) Tentative d’accès à une ressource inexistante La gestion des erreurs a pour buts : Éviter l’affichage des messages bruts tels que PHP les envoie au navigateur Signaler « proprement » les problèmes au visiteur (vu en 2ème) PHP chap 3 - instructions de contrôle PHP chap 1 Principes de programmation 47

48 PHP- VARIABLES – CONSTANTES - TYPES
HELHA informatique de gestion PHP- VARIABLES – CONSTANTES - TYPES 3.1 La suppression des messages d’erreur <?php //e3_9.php $a = 10; $b = 0; echo $a/$b; fopen(" inconnu.txt", "r"); ?> Pour éviter les messages : 1) devant l’appel d’une fonction . @fopen (" inconnu.txt ", " r "); Warning : division par zéro in c:\wamp\e3_9.php on line 14 Warning: (fopen inconnu.txt) [function open] : failed to open to stream : nosuch file or directory…. PHP chap 3 - instructions de contrôle chap 1 Principes de programmation PHP 48

49 PHP- VARIABLES – CONSTANTES - TYPES
HELHA informatique de gestion PHP- VARIABLES – CONSTANTES - TYPES 3.1 La suppression des messages d’erreur Pour éviter les messages : 2) Utiliser la fonction error_reporting ( ) qui permet de n’afficher que les erreurs d’un certain niveau. error_reporting (E_WARNING | E_PARSE) PHP chap 3 - instructions de contrôle PHP chap 1 Principes de programmation 49

50 PHP – CHAINES CARACTERES
HELHA informatique de gestion PHP – CHAINES CARACTERES Affichage des chaînes Affichage formaté Longueur d’une chaîne et code des caractères 4. Mise en forme d’une chaîne 4.1 modification de la casse 4.2 gestion des espaces 4.3 entités HTML et caractères spéciaux PHP chap 4 - chaînes de caractères PHP chap 1 Principes de programmation 50

51 PHP – CHAINES CARACTERES
HELHA informatique de gestion PHP – CHAINES CARACTERES Recherche de sous-chaînes 5.1 une chaîne vue comme un tableau 5.2 les fonctions strstr ( ) et stristr ( ) la fonction strrchr ( ) les fonctions substr ( ), substr_count ( ), str_replace () les fonctions strpos ( ), stripos ( ), strrpos( ), strripos( ) 5.6 capture de sous-chaînes dans des variables 6. Comparaison de chaînes 7. Transformation de chaînes en tableaux PHP chap 4 - chaînes de caractères PHP chap 1 Principes de programmation 51

52 PHP – CHAINES CARACTERES
HELHA informatique de gestion PHP – CHAINES CARACTERES affichage des chaînes Dans une page WEB, l’essentiel du contenu est constitué de chaînes de caractères. Quand le contenu de la page est créé dynamiquement à partir d’un fichier ou d’une DB, ce sont surtout des chaînes de caractères qui sont manipulées. toutes les variables issues de l’envoi d’un formulaire sont de type string. Pour afficher des données : echo PHP chap 4 - chaînes de caractères PHP chap 1 Principes de programmation 52

53 PHP – CHAINES CARACTERES
HELHA informatique de gestion PHP – CHAINES CARACTERES affichage des chaînes La fonction « echo » est utilisable de plusieurs façons pour afficher plusieurs chaînes à la suite l’une de l’autre. <?php // e4_1.php $nom="isat"; echo "vous êtes à l'école <b>".$nom."</b> aujourd'hui le ".date('d')."<br/>"; echo "vous êtes à l'école <b>", $nom, "</b> aujourd'hui le ",date('d'),"<br/>"; echo "vous êtes à l'école <b> $nom </b> aujourd'hui le date('d')<br/>"; ?> Concaténation avec . Les fonctions ne peuvent être incluses dans une chaîne unique Séparation des expressions par , PHP chap 4 - chaînes de caractères chap 1 Principes de programmation PHP 53

54 PHP – CHAINES CARACTERES
HELHA informatique de gestion PHP – CHAINES CARACTERES Affichage formaté Les fonctions « printf » et « sprintf » permettent d’obtenir des résultats uniformes : Aligner des chaînes sur plusieurs lignes Superposition correcte de chiffres en colonnes pour des montants void printf (string " format ", string $ch1, string $ch2, …,$chn); string sprintf (string " format ", string $ch1, string $ch2, …,$chn); Affiche directement le contenu des chaînes $ch1,$ch2,…selon le format spécifié dans la chaîne   " format " Retourne une chaîne unique composée des chaînes $ch1,$ch2,…selon le format spécifié dans la chaîne   " format " PHP chap 4 - chaînes de caractères chap 1 Principes de programmation PHP 54

55 PHP – CHAINES CARACTERES
HELHA informatique de gestion PHP – CHAINES CARACTERES 2. Affichage formaté void vprintf (string " format ", array $tab); string vsprintf (string " format ", array $tab); string str_repeat (string $ch, int N); rôle équivalent à printf et sprintf mais les chaînes sont passées en argument dans un tableau Crée une chaîne contenant N fois la chaîne $ch PHP chap 4 - chaînes de caractères chap 1 Principes de programmation PHP 55

56 PHP – CHAINES CARACTERES
HELHA informatique de gestion PHP – CHAINES CARACTERES Définition de la chaîne de formatage Elle est composée de - un texte ordinaire explicatif - directives d’affichage (= caractères spéciaux qui indiquent la manière dont les chaînes passées en paramètres doivent être intégrées dans la chaîne) % R N N2 L Lettre indiquant le type de la valeur à afficher OBLIGATOIRE caractère remplissage (0 espace ‘autre) pr compléter la chaîne si long fixe Nombre de décimales à afficher pour les décimaux Nombre de caractères de la chaîne caractère – pour aligner à droite, par défaut alignement à gauche PHP chap 4 - chaînes de caractères chap 1 Principes de programmation PHP 56

57 PHP – CHAINES CARACTERES
HELHA informatique de gestion PHP – CHAINES CARACTERES Caractères de formatage du type de données PHP chap 4 - chaînes de caractères PHP chap 1 Principes de programmation 57

58 PHP – CHAINES CARACTERES
HELHA informatique de gestion PHP – CHAINES CARACTERES Caractères de formatage du type de données PHP chap 4 - chaînes de caractères PHP chap 1 Principes de programmation 58

59 PHP – CHAINES CARACTERES
HELHA informatique de gestion PHP – CHAINES CARACTERES <?php //e4_2.php echo "<h3> votre facture</h3>"; echo sprintf("<b>%'_25s%'_25s<br/> </b>","prix HT","prix TTC"); $ht[0] = 30; $ht[1] = 100; $total=0; for ($i=0;$i<2;$i++) { echo sprintf ("article %d %'_17.2f %'_24.2f<br/>",$i+1,$ht[$i],$ht[$i]*1.25); $total += $ht[$i]; } echo str_repeat ("*",50),"<br/>"; echo sprintf ("TOTAL %'_17.2f%'_24.2f<br/>",$total,$total*1.25); ?> PHP chap 4 - chaînes de caractères PHP chap 1 Principes de programmation 59

60 PHP – CHAINES CARACTERES
HELHA informatique de gestion PHP – CHAINES CARACTERES 3. Longueur d’une chaîne et code des caractères int strlen (string $ch) int ord (string $car) string chr (int $code) Détermine le nombre de caractères d’une chaîne Retrouve le code UNICODE d’un caractère Obtient un caractère à partir de son code UNICODE PHP chap 4 - chaînes de caractères chap 1 Principes de programmation PHP 60

61 PHP – CHAINES CARACTERES
HELHA informatique de gestion PHP – CHAINES CARACTERES <?php //e4_3.php //contrôle de login (max 8 car) $login="admin"; if (strlen($login) > 8) echo "login erroné"; else echo "votre login est : $login <br/>"; //génération d'un mot de passe $motpasse = ""; for ($i=1;$i < 6; $i++) { $nb=rand(65,90); $motpasse .= chr($nb); } echo "votre mot de passe est ", $motpasse; ?> PHP chap 4 - chaînes de caractères PHP chap 1 Principes de programmation 61

62 PHP – CHAINES CARACTERES
HELHA informatique de gestion PHP – CHAINES CARACTERES 4. Mise en forme d’une chaîne 4.1 modification de la casse string strtolower (string $ch) string strtoupper (string $ch) string ucwords (string $ch) string ucfirst (string $ch) Retourne la chaîne en minuscules Retourne la chaîne en majuscules Retourne la chaîne avec les initiales des mots qui la composent en majuscules Retourne la chaîne avec uniquement la première lettre en majuscules PHP chap 4 - chaînes de caractères chap 1 Principes de programmation PHP 62

63 PHP – CHAINES CARACTERES
HELHA informatique de gestion PHP – CHAINES CARACTERES 4. Mise en forme d’une chaîne 4.2 gestion des espaces string ltrim (string $ch [, string liste]) string rtrim (string $ch [, string liste]) string trim (string $ch [, string liste]) Supprime les espaces en début de chaîne Supprime les espaces en fin de chaîne Supprime les espaces en début et en fin de chaîne PHP chap 4 - chaînes de caractères chap 1 Principes de programmation PHP 63

64 PHP – CHAINES CARACTERES
HELHA informatique de gestion PHP – CHAINES CARACTERES 4. Mise en forme d’une chaîne 4.2 gestion des espaces string wordwrap (string $ch [, int N [, string car [, boolean coupe ] ] ] ) <?php //e4.4php $ch="cette chaîne anticonstitutionnelle est vraiment beaucoup trop longue pour être affichéee en une ligne"; echo wordwrap ($ch, 10, "<br/>", 1); ?> coupe (= TRUE) permet d’effectuer une césure des mots dont la longueur dépasse N Affiche un texte long avec une largeur maximale déterminée N définit la largeur car contient le caractère à insérer tous les N caractères PHP chap 4 - chaînes de caractères chap 1 Principes de programmation PHP 64

65 PHP – CHAINES CARACTERES
HELHA informatique de gestion PHP – CHAINES CARACTERES 4. Mise en forme d’une chaîne 4.3 entités HTML et caractères spéciaux Définitions : le code Unicode est un système de codage des caractères sur 16 bits mis au point en Le système Unicode permet de représenter n'importe quel caractère par un code sur 16 bits, indépendamment de tout système d'exploitation ou langage de programmation. Il regroupe ainsi la quasi-totalité des alphabets existants (arabe, arménien, cyrillique, grec, hébreu, latin, ...) et est compatible avec le code ASCII. Entité HTML : Les entités sont des mots mnémotechniques qui s'emploient entre un & initial et un point-virgule final. à ou à représente à ô représente ô Entité HTML Code unicode Car affiché PHP chap 4 - chaînes de caractères chap 1 Principes de programmation PHP 65

66 PHP – CHAINES CARACTERES
HELHA informatique de gestion PHP – CHAINES CARACTERES 4. Mise en forme d’une chaîne 4.3 entités HTML et caractères spéciaux Utilité des entités : - Le code source HTML qui sert à produire la page que vous êtes en train de lire contient, entre autres, le texte proposé à la lecture, en clair ou presque. Or, de nombreuses langues contiennent des signes qui n'existent pas dans la plupart des autres. Par exemple le français a des caractères accentués "é", "è", "à", "  î  " , "ç", signes qu'on ne retrouve pas du tout en anglais. Ces caractères, dans le code source HTML, doivent être remplacés par les entités HTML afin que les navigateurs paramétrés pour d'autres langues que le français les affichent correctement. - Certains caractères ont des significations spéciales en HTML, et doivent être remplacés par des entités HTML pour être affichés. (&, ", ’,<,>) PHP chap 4 - chaînes de caractères PHP chap 1 Principes de programmation 66

67 PHP – CHAINES CARACTERES
HELHA informatique de gestion PHP – CHAINES CARACTERES 4. Mise en forme d’une chaîne 4.3 entités HTML et caractères spéciaux string addslashes (string $ch ) Utile avant d’enregistrer des chaînes dans une base de données string stripslashes (string $ch ) Rem : la fonction addslashes () est inutile pour les données en provenance d’un formulaire si la directive magic_quotes_runtime est active dans le php.ini Ajoute le caractère \ devant les caractères spéciaux ‘ "  \ NULL  enlève les caractères \ PHP chap 4 - chaînes de caractères chap 1 Principes de programmation PHP 67

68 PHP – CHAINES CARACTERES
HELHA informatique de gestion PHP – CHAINES CARACTERES 4. Mise en forme d’une chaîne 4.3 entités HTML et caractères spéciaux Certains caractères ont des significations spéciales en HTML, et doivent être remplacés par des entités HTML pour être affichés. 2 fonctions sont pratiques pour éviter que des données fournies par les utilisateurs contiennent des balises HTML : htmlspecialchars () et htmlentities () string htmlspecialchars (string $ch [, string charset]])) "&" devient "& """  devient """ lorsque ENT_NOQUOTES n'est pas utilisée. "'" (guillemet simple) devient "'" uniquement lorsque ENT_QUOTES est utilisée. "<" (inférieur à) devient "<" ">" (supérieur à) devient ">" Chaîne à convertir Désigne l’alphabet utilisé, par défaut ISO (Europe occidentale)  PHP chap 4 - chaînes de caractères chap 1 Principes de programmation PHP 68

69 PHP – CHAINES CARACTERES
HELHA informatique de gestion PHP – CHAINES CARACTERES 4. Mise en forme d’une chaîne 4.3 entités HTML et caractères spéciaux Très pratique par exemple si vous faites un mini-chat et que vous voulez empêcher vos visiteurs d'utiliser du HTML ! <?php //e4_5.php $variable_html = '<em>Ceci est une variable qui contient du HTML</em>'; $variable_sans_html = htmlspecialchars($variable_html); echo 'Avant : ' . $variable_html . '<br />Après : ' . $variable_sans_html; ?> affichage Avant : Ceci est une variable qui contient du HTML Après : <em>Ceci est une variable qui contient du HTML</em> PHP chap 4 - chaînes de caractères PHP chap 1 Principes de programmation 69

70 PHP – CHAINES CARACTERES
HELHA informatique de gestion PHP – CHAINES CARACTERES 4. Mise en forme d’une chaîne 4.3 entités HTML et caractères spéciaux Si on veut remplacer tous les caractères spéciaux en HTML (code unicode > 128) par des entités HTML string htmlentities (string $ch [, string charset]) <?php //e4_6.php $titre = 'Découvrir PHP , et  "apprendre à programmer"'; echo "<form method = \"post\" action = \"insert.php\">"; echo "Titre : "; echo "<input type = \"text\" name =\"titre\" size = \"60\" value = \"".htmlentities ($titre)."\">"; echo "</form>"; ?> Chaîne à convertir Désigne l’alphabet utilisé, par défaut ISO (Europe occidentale)  PHP chap 4 - chaînes de caractères chap 1 Principes de programmation PHP 70

71 PHP – CHAINES CARACTERES
HELHA informatique de gestion PHP – CHAINES CARACTERES Recherche de sous-chaînes une chaîne vue comme tableau Une chaîne peut être considérée comme un tableau de caractères (indices de 0 à N) . on peut récupérer le caractère d’indice cste : $ch [cste] ou encore si $ind contient un entier : $ch[$ind] <?php //e4_7.php $ch = "bonjour Worldtrade"; echo "le 9ème caractère est : $ch[8] "; ?> PHP chap 4 - chaînes de caractères PHP chap 1 Principes de programmation 71

72 PHP – CHAINES CARACTERES
HELHA informatique de gestion PHP – CHAINES CARACTERES Recherche de sous-chaînes 5.2 les fonctions strstr ( ) et stristr ( ) Elles permettent d’extraire une sous-chaîne d’une chaîne donnée et renvoient tous les caractères allant de la première occurrence de $ch2 jusque la fin de $ch1. (false sinon) string strstr (string $ch1, string $ch2) string stristr (string $ch1, string $ch2) <?php //e4_8.php $ch= " Perette et le pot au lait "; $ssch = strstr($ch, " pot "); echo $ssch; ?> Sensible à la casse insensible à la casse PHP chap 4 - chaînes de caractères chap 1 Principes de programmation PHP 72

73 PHP – CHAINES CARACTERES
HELHA informatique de gestion PHP – CHAINES CARACTERES Recherche de sous-chaînes 5.3 la fonction strrchr ( ) Elle permet d’extraire une sous-chaîne d’une chaîne donnée et renvoie tous les caractères allant de la dernière occurrence de $ch2 jusque la fin de $ch1. string strrchr (string $ch1, string $ch2) <?php //e4_9.php $ch= "Perette et le pot au lait, c’est pas de pot !"; $ssch = strrchr($ch, "pot"); echo $ssch; ?> sensible à la casse PHP chap 4 - chaînes de caractères chap 1 Principes de programmation PHP 73

74 PHP – CHAINES CARACTERES
HELHA informatique de gestion PHP – CHAINES CARACTERES Recherche de sous-chaînes 5.4 les fonctions substr ( ), substr_count ( ), str_replace () Elles permettent d’extraire des sous-chaînes en fonction des indices de caractères dans la chaîne analysée (le premier étant l’indice 0) string substr (string $ch, integer ind [, integer N]) <?php //e4_10.php $url = " if (substr ($url, 0,7) != " echo "l ’adresse URL n’est pas complète"; else echo "enregistrement de l'adresse : $url"; ?> Retourne la chaîne contenant N caractères de $ch extraits à partir de l’indice ind inclus . (Si N est omis, la sous-chaîne extraite va jusque la fin de $ch. PHP chap 4 - chaînes de caractères chap 1 Principes de programmation PHP 74

75 PHP – CHAINES CARACTERES
HELHA informatique de gestion PHP – CHAINES CARACTERES Recherche de sous-chaînes 5.4 les fonctions substr ( ), substr_count ( ), str_replace () Elles permettent d’extraire des sous-chaînes en fonction des indices de caractères dans la chaîne analysée (le premier étant l’indice 0) int substr_count (string $ch, string $ssch) <?php //e4_11.php $ch= "Perette et le pot au lait, c’est pas de pot !"; $ch2 = "pot"; $nb = substr_count($ch, $ch2); echo "le mot \"$ch2\" est présent $nb fois dans \"$ch\""; ?> Retourne le nombre d’occurrences d’une sous-chaîne $ssch dans une chaîne $ch. (sensible à la casse) PHP chap 4 - chaînes de caractères chap 1 Principes de programmation PHP 75

76 PHP – CHAINES CARACTERES
HELHA informatique de gestion PHP – CHAINES CARACTERES Recherche de sous-chaînes 5.4 les fonctions substr ( ), substr_count ( ), str_replace () string str_replace (string $ch1, string $ch2, string $ch [, string $var ] ) <?php //e4_12.php $text = "HTML est un langage de description de contenu"; $newtext = str_replace ("HTML", "XML", $text); echo $newtext; ?> Retourne la chaîne $ch dans laquelle toutes les occurrences de $ch1 sont remplacées par $ch2. $var contient le nombre de remplacements à effectuer PHP chap 4 - chaînes de caractères chap 1 Principes de programmation PHP 76

77 PHP – CHAINES CARACTERES
HELHA informatique de gestion PHP – CHAINES CARACTERES Recherche de sous-chaînes 5.5 les fonctions strpos ( ), stripos ( ), strrpos( ), strripos( ) Rem : elles ont une syntaxe identique int strpos (string $ch, string $ssch, [, int N ] ) Retourne la postion du premier caractère de la première occurrence d’une sous-chaîne $ssch ou FALSE Retourne la postion du premier caractère de la dernière occurrence d’une sous-chaîne $ssch ou FALSE Identique à strpos ( ) insensible à la casse Identique à strrpos ( ) insensible à la casse N désigne la position à partir de laquelle la recherche s ’effectue dans $ch PHP chap 4 - chaînes de caractères PHP chap 1 Principes de programmation 77

78 PHP – CHAINES CARACTERES
HELHA informatique de gestion PHP – CHAINES CARACTERES Recherche de sous-chaînes 5.5 les fonctions strpos ( ), stripos ( ), strrpos( ), strripos( ) <?php //e4_13.php $text = "HTML est un langage. XML est différent de HTML. "; $n = strpos ($text, "HTML"); if ($n === FALSE) echo "pas d'occurence"; else echo $n; ?> Opérateur d’identité PHP chap 4 - chaînes de caractères chap 1 Principes de programmation PHP 78

79 PHP – CHAINES CARACTERES
HELHA informatique de gestion PHP – CHAINES CARACTERES Recherche de sous-chaînes 5.6 capture de sous-chaînes dans des variables La fonction sscanf ( ) permet de récupérer chacun des éléments d’une chaîne dans des variables séparées. <?php //e4_14.php $personne = " Jean-Sébastien Bach"; $format = "%d-%d %s %s"; $nb = sscanf ($personne, $format, $dtnai, $dtmort, $prenom, $nom); echo "$prenom $nom est né en $dtnai et mort en $dtmort <br/>"; echo "nous avons $nb infos"; ?> PHP chap 4 - chaînes de caractères PHP chap 1 Principes de programmation 79

80 PHP – CHAINES CARACTERES
HELHA informatique de gestion PHP – CHAINES CARACTERES 6. Comparaison de chaînes 6.1 utilisation des opérateurs usuels de comparaison == === < > <= >= Exemples : <?php //e4_15.php $nb = 59; $ch = "59 rue noire"; if ($ch==$nb) echo  "TRUE  <br/>« ; if ($ch===$nb) echo  "TRUE  <br/>"; Selon code ASCII mêmes caractères pour que l’égalité soit vérifiée même valeur et même type Égalité , seuls les nombres sont pris en compte car une des 2 chaînes est un nombre Pas d’égalité , car les types sont différents PHP chap 4 - chaînes de caractères chap 1 Principes de programmation PHP 80

81 PHP – CHAINES CARACTERES
HELHA informatique de gestion PHP – CHAINES CARACTERES 6. Comparaison de chaînes 6.2 utilisation des fonctions strcmp() , strcasecmp() elles permettent de comparer 2 chaînes et retournent : si $ch1 < $ch en cas d’égalité si $ch1 > $ch2 int strcmp (string $ch1, string $ch2) int strcasecmp (string $ch1, string $ch2) Sensible à la casse insensible à la casse PHP chap 4 - chaînes de caractères chap 1 Principes de programmation PHP 81

82 PHP – CHAINES CARACTERES
HELHA informatique de gestion PHP – CHAINES CARACTERES 6. Comparaison de chaînes 6.2 utilisation des fonctions strncmp(), strncasecmp() elles sont identiques aux précédentes mais en limitant la comparaison aux n premiers caractères int strncmp (string $ch1, string $ch2, int N) int strncasecmp (string $ch1, string $ch2, int N) Sensible à la casse insensible à la casse <?php //e4_16.php $ch1 = " Blanc "; $ch2 = " Bleu"; $ch3 = " blanc"; echo  strcmp($ch1,$ch2) ; echo  strcasecmp($ch1,$ch3) ; echo  strncmp($ch1,$ch2,2) ; PHP chap 4 - chaînes de caractères chap 1 Principes de programmation PHP 82

83 PHP – CHAINES CARACTERES
HELHA informatique de gestion PHP – CHAINES CARACTERES 6. Comparaison de chaînes 6.2 utilisation des fonctions strnatcmp(), strnatcasecmp() elles sont identiques aux précédentes mais en respectant l’ordre naturel int strnatcmp (string $ch1, string $ch2) int strnatcasecmp (string $ch1, string $ch2) Sensible à la casse insensible à la casse <?php //e4_17.php $ch4 = " page2 "; $ch5 = " page12"; echo  strcmp($ch4,$ch5) ; echo  strnatcmp($ch4,$ch5) ; PHP chap 4 - chaînes de caractères chap 1 Principes de programmation PHP 83

84 PHP – CHAINES CARACTERES
HELHA informatique de gestion PHP – CHAINES CARACTERES 6. Comparaison de chaînes 6.2 utilisation de la fonction similar_text () elle recherche le nombre de caractères communs à 2 chaînes (plus éventuellement le pourcentage de similarité) int similar_text (string $ch1, string $ch2 [, $pourcent]) Sensible à la casse <?php //e4_18.php $ch4 = " MySQL "; $ch5 = " PgSQL"; echo  similar_text($ch4,$ch5,$pourc), "caractères communs" ; echo  "similarité :" , $pourc, "%" ; PHP chap 4 - chaînes de caractères chap 1 Principes de programmation PHP 84

85 PHP – CHAINES CARACTERES
HELHA informatique de gestion PHP – CHAINES CARACTERES 7. Transformation de chaînes en tableaux 7.1 utilisation de la fonction explode () elle extrait chacun des « mots » d’une chaîne et les place dans un tableau array explode (string sep, string $ch [, int N ]) $ch : chaîne à analyser sep : critère de séparation (souvent espace) N : nombre max d ’éléments du tableau (le dernier contient toute la fin de la chaîne) PHP chap 4 - chaînes de caractères chap 1 Principes de programmation PHP 85

86 PHP – CHAINES CARACTERES
HELHA informatique de gestion PHP – CHAINES CARACTERES 7. Transformation de chaînes en tableaux 7.2 utilisation de la fonction implode () elle retourne une chaîne composée des éléments d’un tableau séparés par un caractère donné string implode (string sep, string $tab) <?php //e4_18.php $ch4 = "nous étudions PHP et MySQL"; $result = explode(" ", $ch4); foreach ($result as $valeur) { echo $valeur."<br/>"; } ?> PHP chap 4 - chaînes de caractères PHP chap 1 Principes de programmation 86

87 HELHA informatique de gestion
PHP – LES TABLEAUX Plan Principes Créer des tableaux 2.1 Définir directement les valeurs du tableau 2.2 Utiliser la fonction array() La fonction count($tableau) Les tableaux multi dimensions Créer des suites Créer un tableau à partir d’une chaîne Comptage du nombre de valeurs d’un tableau Lecture d’un tableau 6.1 boucle FOR 6.2 boucle WHILE 6.3 La fonction EACH() 6.4 La fonction EACH() associée à la fonction LIST() 6.5 La fonction FOREACH() PHP chap 5 - les tableaux PHP 87

88 HELHA informatique de gestion
PHP – LES TABLEAUX Plan Manipuler des tableaux 7.1 Extraire une partie d’un tableau 7.2 Ajouter et enlever des éléments Opérations sur plusieurs tableaux 8.1 Fusionner des tableaux 8.2 Intersection et différence de deux tableaux Tri des tableaux 9.1 Tri des tableaux indicés 9.2 Tri des tableaux associatifs Tri des valeurs Tri des clés Opérer une sélection des éléments Appliquer une fonction à un tableau L’objet ArrayObject PHP chap 5 - les tableaux PHP 88

89 HELHA informatique de gestion
PHP – LES TABLEAUX PRINCIPES Les tableaux (arrays) permettent de stocker plusieurs valeurs sous un même nom de variable. Chaque variable peut être de type différent (entier, chaîne, booléen, date, array, objects, etc...) Chaque élément peut être identifié par : un indice numérique (le 1er est ZERO)  tableaux indicés ex. $tab[0] $tab[2] $tab[$i + 1] une étiquette (de type string) appelée CLE (Key) ex. $tab[ "nom "]  tableaux associatifs PHP chap 5 - les tableaux PHP 89

90 HELHA informatique de gestion
PHP – LES TABLEAUX 2. CRÉER DES TABLEAUX 2.1 Définir directement les valeurs du tableau : $tab[0] = 25; $tab[1] = " php " ; $tab[20] = 10.50; // les éléments 2 à 19 n’existent pas (valeur NULL) $tab[21] = TRUE; $tab[ ] = " exemple "; // si indice non précisé  indice suivant (ici 22) $ind = 8; $tab[$ind] = 50; // l’indice est une variable integer $tab2[" nom " ] = " Dupont "; // tableau associatif $prenom= " Jean "; $tab2[" prenom "] = $prenom; ATTENTION : Les clés des tableaux associatifs sont sensibles à la casse PHP chap 5 - les tableaux PHP 90

91 HELHA informatique de gestion
PHP – LES TABLEAUX 2.2 Utiliser la fonction array() : Tableau indicé : $tab = array(val0,val1,val2,…..,valN); Tableau associatif : $tab = array("cleA " =>valA, " cleB " => valB, … " cleZ " =>valZ); 2.3 La fonction count($tableau) La fonction count(t) retourne le nombre d’éléments actifs (non nuls) d’un tableau t donné en paramètre. PHP chap 5 - les tableaux PHP 91

92 HELHA informatique de gestion
PHP – LES TABLEAUX 2.4 Les tableaux multi dimensions : En PHP, pas de méthode explicite pour la création d’un tableau à n dimensions car un élément d’un tableau peut être un tableau lui-même. $tabmulti=array ( array(" Li0Col0 " , " Li0Col1 " , " Li0Col2 " ), array(" Li1Col0 " , " Li1Col1 " , " Li1Col2 " ), array(" Li2Col0 " , " Li2Col1 " , " Li2Col2 " ) ); Ecriture : $tabmulti[2][1] = 25; // modifie contenu Li2Col1 Lecture : $el = $tabmulti[2][1] ; NB : En test , utilisez la fonction print_r($tabmulti) ou var_dump ($tabmulti) qui affichera le contenu de toute la table. PHP chap 5 - les tableaux PHP 92

93 HELHA informatique de gestion
PHP – LES TABLEAUX Lecture d’un tableau multi dimensions : boucles imbriquées for ($i=0;$i < count($tabmulti);$i++) { for ($j=0;$j < count($tabmulti [ $i ] );$j++) print $tabmulti[$i][$j] . ‘<br>’ ; } PHP chap 5 - les tableaux PHP 93

94 HELHA informatique de gestion
PHP – LES TABLEAUX 3. CRÉER DES SUITES range(début,fin) Suite de nombres : $tab = range(1,10) ; // nbres de 1 à 10 Suite de lettres : $tab=range("A " , " M " ); // lettres A à M 4. CRÉER TABLEAU A PARTIR D’UNE CHAÎNE explode(sép, ch) $chaine= " La cigale et la fourmi" ; $tabl = explode(" " ,$chaine); // -> $tabl[0] = La , $tabl[4] = fourmi PHP chap 5 - les tableaux PHP 94

95 HELHA informatique de gestion
PHP – LES TABLEAUX 5. COMPTAGE DU NOMBRE DE VALEURS D’UN TABLEAU Une seule dimension : $nbre = count($tableau) ou sizeof($tableau) N dimensions : $nbre = 0; for ($i=0;$i< count($tm);$i++) { if gettype($tm[$i] == " array ") $nbre+= count($tm[$i]); } else $nbre++; PHP chap 5 - les tableaux PHP 95

96 HELHA informatique de gestion
PHP – LES TABLEAUX array_count_value(array) Cette fonction compte le nombre de valeurs différentes dans un tableau $resu = array_count_values($tab); $resu sera un tableau associatif ayant pour clé les valeurs du tableau $tab et pour valeur associée le nbre d’occurrences de cette valeur dans $tab Attention : ne s’utilise qu’avec un tableau une dimension Exemple : <?php $tab = array (" Web ", " Internet ", " PHP ", " Javascript ", " PHP ", " ASP ", " PHP ", " ASP "); $result=array_count_values($tab); echo   " le tableau \$tab contient ",count($tab) , " éléments <br> "; echo   " le tableau \$tab contient ",count($result) , " valeurs différentes <br> "; print_r($result); ?> PHP chap 5 - les tableaux PHP 96

97 HELHA informatique de gestion
PHP – LES TABLEAUX 6. LECTURE DES TABLEAUX 6.1 Boucle FOR for ($i=0;$i < count($tab);$i++) { echo $tab[$i]; } 6.2 Boucle WHILE $i=0; While (isset($tab[$i])) // isset() retourne TRUE si l’élément existe { echo $tab[$i]; $i++; } PHP chap 5 - les tableaux PHP 97

98 HELHA informatique de gestion
PHP – LES TABLEAUX 6.3 La fonction EACH() $element = each($tableau) $element est un tableau de 4 éléments : $element[0] -> indice de l’élément courant $element[1] -> valeur de l’élément courant $element[ "key" ] -> clé de l’élément courant $element[ " value" ] -> valeur de l’élément courant while($element=each($tableau)) { echo " l’élément indice .$element[0] . Contient . $element[1] " ; echo " l’élément de clé .$element[‘key’] . Contient . $element[‘value’] " ; } Attention la fonction each() déplace le pointeur sur l’élément suivant. Pour réinitialiser le pointeur, ,utilisez la fonction reset($tableau) PHP chap 5 - les tableaux PHP 98

99 HELHA informatique de gestion
PHP – LES TABLEAUX 6.4 La fonction EACH() associée à la fonction LIST() La fonction list(variableList) permet d’affecter à N variables la valeur des n premiers éléments d’un tableau indicé list($x,$y,$z)=$tab; // $x=$tab[0] $y = $tab[1] etc … list($x,,$y,,$z)=$tab; // $x=$tab[0] $y=$tab[2] $z=$tab[4] list($x,$y) = each($tab); $x = indice de l’élément en cours $y = valeur de l’élément en cours while(list($indice,$valeur) =each($tab) { echo " l’élément indice .$indice . contient . $valeur " ; } Attention, la fonction list() ne s’applique pas aux tableaux associatifs PHP chap 5 - les tableaux PHP 99

100 HELHA informatique de gestion
PHP – LES TABLEAUX 6.5 La fonction FOREACH() Par rapport à la boucle FOR, FOREACH() ne doit pas connaître à l’avance le nombre d’éléments d’un tableau Tableaux indicés foreach($tab as $valeur) {bloc de code utilisant $valeur } foreach($tab as $indice=>$valeur){bloc de code utilisant $indice $valeur } Tableaux associatifs foreach($tab as $cle=>$valeur) { bloc utilisant $cle et $valeur} Exemple : foreach($tab as $cle=>$valeur) { echo " l’élément de clé .$cle . contient . $valeur <br>" ; } PHP chap 5 - les tableaux PHP 100

101 HELHA informatique de gestion
PHP – LES TABLEAUX foreach() avec un tableau multidimensionnel $clients = array( "client1"=>array("nom1"=> "Leparc" , "ville1"=> "Paris"), "client2"=>array("nom2"=> "Laforet" , "ville2"=> " Bruxelles"), "client3"=>array("nom3"=> "Lechamp" , "ville3"=> " Madrid")); foreach($clients as $cle=>$tab) { echo " <B> $cle </B>" ; foreach($tab as $key=>$valeur) echo " $key - $valeur" ; } PHP chap 5 - les tableaux PHP 101

102 HELHA informatique de gestion
PHP – LES TABLEAUX MANIPULER LES TABLEAUX 7.1 Extraire une partie d’un tableau La fonction array_slice() retourne un tableau qui est un sous-ensemble d’un tableau initial Exemple : $soustab=array_slice($tab, $indicedeb, $indicefin); 7.2 Ajouter et enlever des éléments - La fonction $int = array_push($tab, val1,val2, …valn); Ajoute en fin de $tab les éléments passés en paramètres et retourne le nouveau nombre d’éléments du tableau - La fonction $int = array_unshift($tab, val1,val2, …valn); Ajoute en début de $tab les éléments passés en paramètres et retourne le nouveau nombre d’éléments du tableau PHP chap 5 - les tableaux PHP 102

103 HELHA informatique de gestion
PHP – LES TABLEAUX - La fonction $v = array_pop($tab) Supprime le dernier élément du tableau et retourne sa valeur (ou NULL) dans $v - La fonction $v = array_shift($tab) Supprime le premier élément du tableau et retourne sa valeur (ou NULL) dans $v - La fonction array_unset($tab[cle ou indice]) Supprime l’élément du tableau dont on précise l’indice ou la clé Nb : les autres éléments conservent leurs valeurs Exemples : array_unset($tab[3]) array_unset([" nom" ]) - La fonction $tab2 = array_unique($tab) Retourne un tableau ne contenant que la dernière occurrence des doublons NB les doublons éliminés conservent leurs indices et sont vides PHP chap 5 - les tableaux PHP 103

104 HELHA informatique de gestion
PHP – LES TABLEAUX 8. OPERATIONS SUR PLUSIEURS TABLEAUX 8.1 Fusionner des tableaux La fonction $tab = array_merge($tab1, $tab2, …$tabn) Renvoie en un seul tableau, l’union des différents tableaux passés en paramètres Attention :Pour les tableaux associatifs, si des clés sont communes, seule l’association clé-valeur du dernier paramètre sera conservée Pour ne pas perdre de telles valeurs, il faut utiliser la fonction array_merge_recursive() qui conserve la clé en double et lui associera un tableau avec les différentes valeurs de cette cle La fonction $tab=array_combine($tabcles,$tabvaleurs) Crée un tableau associatif. $tabcles et $tabvaleurs étant des tableaux indicés contenant respectivement les clés et les valeurs associées PHP chap 5 - les tableaux PHP 104

105 HELHA informatique de gestion
PHP – LES TABLEAUX 8.2 Intersection et différence de deux tableaux La fonction $tab = array_intersect($tab1, $tab2) Renvoie en un seul tableau, reprenant les éléments communs aux 2 tableaux Attention : Les indices conservés correspondent à ceux du premier tableau La fonction $tab = array_diff($tab1, $tab2) Renvoie en un tableau, reprenant les éléments présents dans le premier tableaux et pas dans le deuxième. Remarques : On peut fournir plus de 2 tableaux comme paramètres. Ces 2 fonctions peuvent être appliquées à des tableaux associatifs L’ordre des paramètres fourni est important PHP chap 5 - les tableaux PHP 105

106 HELHA informatique de gestion
PHP – LES TABLEAUX 9. TRI DES TABLEAUX 9.1 Tri des tableaux indicés La fonction sort($tabind) trie le tableau $tabind en ordre croissant ASCII La fonction rsort($tabind) trie le tableau $tabind en ordre décroissant La fonction natsort($tabind) trie le tableau $tabind en ordre croissant naturel La fonction natrsort($tabind) trie le tableau $tabind en ordre décroissant La fonction natcasesort($tabind) trie le tableau $tabind en ordre croissant naturel sans tenir compte de la casse NB Il ne sera pas possible de récupérer l’ordre initial, mais on peut si nécessaire duplicier un tableau avant de le trier $tabbis = $tab La fonction $tab2 = array_reverse(tab) inverse l’ordre des valeurs dans un nouveau tableau PHP chap 5 - les tableaux PHP 106

107 HELHA informatique de gestion
PHP – LES TABLEAUX On peut, si nécessaire, définir son ordre de tri personnel : usort($tab, "userFunctionName" ) Le deuxième paramètre désigne le nom d’une fonction écrite par l’utilisateur qui recevra 2 paramètres représentant 2 valeurs consécutives de la table à comparer. Cette fonction retournera : Un nombre négatif pour trier dans l’ordre défini Un nombre positif pour trier dans l’ordre inverse Zéro si les 2 éléments sont équivalents Exemple : trier dans l’ordre croissant de la longueur des chaînes function long($mot1,$mot2) { If(strlen($mot1)==strlen($mot2)) return 0; elsif(strlen($mot1)>strlen($mot2)) return -1; Else return 1; } usort($tab, "long“) PHP chap 5 - les tableaux PHP 107

108 HELHA informatique de gestion
PHP – LES TABLEAUX Mélanger les valeurs de façon aléatoire La fonction shuffle($tab) mélangera de façon aléatoire les valeurs contenues dans la table. NB Il est recommandé d’initialiser le générateur de nombres aléatoires avec srand(time()) avant d’appeler shuffle() PHP chap 5 - les tableaux PHP 108

109 HELHA informatique de gestion
PHP – LES TABLEAUX 9.2 Tri des tableaux associatifs Tri des valeurs La fonction asort($tabas) trie le tableau $tabas en ordre croissant ASCII La fonction arsort($tabas) trie le tableau $tabas en ordre décroissant La fonction uasort($tabas, "userFunctionName" ) trie le tableau $tabas suivant une fonction de tri définie par l’utilisateur NB Les fonctions natsort() natasort() et natcasesort() peuvent également être utilisées avec les tableaux associatifs Tri des clés La fonction $boolean = ksort($rtabas) trie le tableau associatif sur la valeur croissante de ses clés et renvoye TRUE si le tri s’est bien passé (sinon FALSE) $boolean = krsort($rtabas) idem en ordre décroissant uksort(($tabas, "userFunctionName" ) idem avec user defined function NB Il est possible de transformer la casse des clés avec la fonction : array_change_key_case($tabas,CASE_LOWER / CASE_UPPER) PHP chap 5 - les tableaux PHP 109

110 HELHA informatique de gestion
PHP – LES TABLEAUX OPERER UNE SELECTION DES ELEMENTS La fonction $tab2 = array_filter($tab, "userFunctionName“) Permet de réaliser une sélection pour ne retenir dans $tab2 que les éléments de $tab répondant aux critères de la UDF. Cette UDF reçoit 1 paramètre, représentant la valeur courante de $tab Exemple : ne retenir les valeurs commençant par la lettre ‘P’ ou ‘p’ Function init($ville) { if($ville[0] == ‘P’ || ($ville[0] == ‘p’)) return $ville ; } $tab2= array_filter($tab, “init“) PHP chap 5 - les tableaux PHP 110

111 HELHA informatique de gestion
PHP – LES TABLEAUX 11. APPLIQUER UNE FONCTION A UN TABLEAU On peut appliquer un traitement répétitif à chaque élément d’un tableau avec la fonction array_walk($tab, "userFunctionName“,ParamFacul) On peut éventuellement ajouter des paramètres personnels derrière les 2 premiers Cette fonction appelée reçevra 2 paramètres , le premier la valeur de l’élément, le deuxième l’indice ou la clé de l’élément. Si des Param facultatifs ont été donnés, ils seront passés à la suite des 2 premiers. La fonction $chaine =array_reduce($tab, " UDFname ",ParamFacul) Permet de retourner un seul résultat (somme, moyenne …) à partir des valeurs d’un tableau . Le ParamFacul représente la valeur par défaut qui sera retournée si $tab est vide. PHP chap 5 - les tableaux PHP 111

112 HELHA informatique de gestion
PHP – LES TABLEAUX 12. L’OBJET ArrayObject Pour créer un objet tableau, on utilise $otab = ArrayObject() Le constructeur peut recevoir des valeurs : $otab = ArrayObject(array(3,45,’Nom’, TRUE)) // tabl indicés $otab = ArrayObject(array(‘a’=> "linux ",’b’=> " windows ")) // tabl ass Pour ajouter un élément au tableau on utilise la méthode : $otab->append($valeur) La boucle foreach permet de lire les indices(ou clés) et les valeurs La méthode $otab->count() renvoye le nbre d’éléments du tableau La méthode $tabass = $otab->getArrayCopy() récupère un tableau associatif ‘classique’ Pour lire un élément on utilise la méthode : $val = $otab->offsetGet(indice / clé) PHP chap 5 - les tableaux PHP 112

113 HELHA informatique de gestion
PHP – LES TABLEAUX Pour ajouter un élément en précisant sa clé ou indice on utilise la méthode : $otab->offsetSet(cle / indice,valeur) Pour supprimer un élément on utilise la méthode : $otab->offsetUnSet(cle / indice) PHP chap 5 - les tableaux PHP 113

114 PHP – LES TABLEAUX-fonctions
HELHA informatique de gestion PHP – LES TABLEAUX-fonctions array_change_key_case — Change la casse des clés d'un tableau array_chunk — Sépare un tableau en tableaux de taille inférieure array_combine — Crée un tableau à partir de deux autres tableaux array_count_values — Compte le nombre de valeurs d'un tableau array_diff_assoc — Calcule la différence de deux tableaux, en prenant en compte les clés array_diff_key — Calcule la différence de deux tableaux en utilisant les clés pour comparaison array_diff_uassoc — Calcule la différence entre deux tableaux associatifs, à l'aide d'une fonction de rappel array_diff_ukey — Calcule la différence entre deux tableaux en utilisant une fonction de rappel sur les clés pour comparaison array_diff — Calcule la différence entre deux tableaux array_fill_keys — Remplit un tableau avec des valeurs, en spécifiant les clés array_fill — Remplit un tableau avec une même valeur array_filter — Filtre les éléments d'un tableau grâce à une fonction utilisateur array_flip — Remplace les clés par les valeurs, et les valeurs par les clés array_intersect_assoc — Calcule l'intersection de deux tableaux avec des tests sur les index array_intersect_key — Calcule l'intersection de deux tableaux en utilisant les clés pour comparaison array_intersect_uassoc — Calcule l'intersection de deux tableaux avec des tests sur les index, compare les index en utilisant une fonction de rappel array_intersect_ukey — Calcule l'intersection de deux tableaux en utilisant une fonction de rappel sur les clés pour comparaison array_intersect — Calcule l'intersection de tableaux array_key_exists — Vérifie si une clé existe dans un tableau PHP chap 5 - les tableaux PHP 114

115 HELHA informatique de gestion
PHP- formulaires Qu’est-ce qu’un formulaire ? Transmission des variables A) transmission en modifiant l’adresse B) transmission avec un formulaire les attributs d’un formulaire A) méthode : post ou get B) action C) input type D) textarea E) select Exemple de formulaire Récupération des données d’un formulaire Exemple de traitement des données d’un formulaire Gérer les boutons d’envoi multiples PHP chap 6 - les formulaires PHP 115

116 HELHA informatique de gestion
PHP- formulaires Qu’est-ce qu’un formulaire ? <form method="post" action="cible.php"> <p> On mettra ici les éléments de notre formulaire.<br /> Notez qu'il n'y a pour l'instant pas de PHP. </p> </form> serveur formulaire visiteur formulaire présentable créé en HTML Gestion des infos fournies par le formulaire au script côté serveur en PHP PHP chap 6 - les formulaires PHP 116

117 HELHA informatique de gestion
PHP- formulaires Transmission des variables Un des aspects intéressants de PHP, c'est qu'on peut se transmettre des variables de page en page. C'est pratique, par exemple pour transmettre le nom du visiteur. En effet, les variables sont détruites une fois que la page PHP est générée. Alors comment récupérer leur valeur dans une autre page ? Transmettre en modifiant l’adresse <a href=" ici pour accéder aux infos !</a> ? nom-var = valeur Balise <a> permet de faire un lien d’une page à l’autre Cela va créer une variable particulière : $_GET['jour'] qui aura pour valeur 27 ! PHP chap 6 - les formulaires PHP 117

118 HELHA informatique de gestion
PHP- formulaires Transmission des variables Transmettre en modifiant l’adresse <a href=" ">Cliquez ici pour accéder aux infos !</a> Pour créer d'autres variables, il vous suffit de les séparer par des &. Il ne faut pas écrire directement le symbole & (c'est interdit, même si ça "a l'air" de marcher). Il faut remplacer les & par le code HTML correspondant, à savoir & Tous les & seront transformés en symboles & par le navigateur du visiteur. PHP chap 6 - les formulaires PHP 118

119 HELHA informatique de gestion
PHP- formulaires Transmission des variables Transmettre en modifiant l’adresse (exemple complet) <p> Notez que cette page ne contient que du HTML.<br /> Voici 3 liens vers la page cible.php, avec des variables aux valeurs différentes : </p> <a href="cible.php?nom=Dupont&prenom=Michel">Lien vers cible.php?nom=Dupont&prenom=Michel</a><br /> <a href="cible.php?nom=Guichard&prenom=Patrick">Lien vers cible.php?nom=Guichard&prenom=Patrick</a><br /> <a href="cible.php?nom=Surret&prenom=Coralie">Lien vers cible.php?nom=Surret&prenom=Coralie</a>  Bonjour ! Votre nom est <?php echo $_GET['nom']; ?> , et votre prénom est <?php echo $_GET['prenom']; ?>. <p>Faites un autre essai, <a href="appel.php">cliquez ici</a> pour revenir à appel.php</p> appel.php cible.php $_GET et $_POST sont des tableaux associatifs qui permettent de récupérer les valeurs des variables d’une autre page PHP chap 6 - les formulaires PHP 119

120 HELHA informatique de gestion
PHP- formulaires Transmission des variables B) Transmettre avec un formulaire <p> Cette page, elle aussi, ne contient que du HTML.<br /> Veuillez taper votre prénom : </p> <form action="cible.php" method="post"> <input type="text" name="prenom" /> <input type="submit" value="Valider" /> </form>  Bonjour ! Je sais comment tu t'appelles, hé hé. Tu t'appelles <?php echo $_POST['prenom']; ?> ! <p>Si tu veux changer de prénom, <a href="appel.php">clique ici</a> pour revenir à appel.php</p> appel.php cible.php PHP chap 6 - les formulaires PHP 120

121 HELHA informatique de gestion
PHP- formulaires 3. Les attributs d’un formulaire A) method="post"|"get"  La méthode GET (celle qui est utilisée par défaut si rien n'est renseigné) fait circuler les informations du formulaire en clair dans la barre d'adresse en suivant le format ci-après : Cette adresse signifie que nous allons transmettre à la page scriptphp.php les couples variable / valeur transmis en paramètre. La première variable d'une url est toujours précédée du symbole ? alors que les autres seront précédées du symbole &. Les noms des variables correspondent aux attributs name des éléments du formulaire et les valeurs aux attributs value. La méthode POST, quant à elle, transmet les informations du formulaire de manière masquée mais non cryptée. La méthode POST est préférée lorsqu'il y'a un nombre important de données à transmettre ou bien lorsqu'il faut envoyer des données sensibles comme des mots de passe. Dans certains cas, seule la méthode POST est requise : un upload de fichier par exemple. Inconvénient : données visibles par le visiteur Méthode la plus utilisée PHP chap 6 - les formulaires PHP 121

122 HELHA informatique de gestion
PHP- formulaires 3. Les attributs d’un formulaire B) action = " cible.php " C'est le nom de la page qui sera appelée lorsque l'utilisateur aura envoyé son formulaire. Il est recommandé que ce fichier soit présent dans le même répertoire que celui contenant le formulaire. Lorsque le formulaire est envoyé, le serveur Web qui le reçoit le redirige vers le script PHP référencé dans le champ action du formulaire. PHP va automatiquement créer le tableau $_POST qui contiendra les valeurs saisies dans les champs du formulaire. PHP chap 6 - les formulaires PHP 122

123 HELHA informatique de gestion
PHP- formulaires 3. Les attributs d’un formulaire Input type = " " <input type="text" name="pseudo" /> Text password checkbox radio submit reset file hidden Nom du champ (côté serveur) Valeur par défaut le texte que le visiteur aura rentré sera disponible dans cible.php sous la forme d'une variable appelée $_POST['pseudo']. PHP chap 6 - les formulaires PHP 123

124 HELHA informatique de gestion
PHP- formulaires 3. Les attributs d’un formulaire Input type = " " <input type = "checkbox" name= " case"/> ma case Si la case est cochée, $_POST [‘case’], alors $_POST['case'] aura pour valeur "on " . Si elle n'est pas cochée, alors $_POST['case'] n'existera pas. Vous pouvez faire un test avec isset($_POST['case']). Si vous voulez que la case soit cochée par défaut, il faudra lui rajouter l'attribut checked="checked". <input type="checkbox" name="case" checked="checked" /> Nom de la variable à transmettre Libellé affiché PHP chap 6 - les formulaires PHP 124

125 HELHA informatique de gestion
PHP- formulaires 3. Les attributs d’un formulaire Input type = " " <input type = "checkbox" name= "case" value = " valeur " /> ma case on peut créer un groupe de cases à cocher. Il est alors possible de cocher plusieurs cases simultanément. <input type = "checkbox" name= " aliment []"/> Frites <input type = "checkbox" name= " aliment[] "/> Steak <input type = "checkbox" name= " aliment[]"/> Epinards <input type = "checkbox" name= " aliment[]"/> Huitres Valeur transmise si la case est cochée On récupère les valeurs dans un tableau PHP chap 6 - les formulaires PHP 125

126 HELHA informatique de gestion
PHP- formulaires 3. Les attributs d’un formulaire Input type = " " Aimez-vous les frites ? <input type="radio" name="frites" value="oui" checked="checked" /> Oui <input type="radio" name="frites" value="non" /> Non les deux boutons d'option ont le même nom ("frites"). C'est très important, car les boutons d'options fonctionnent par "groupes" : tous les boutons d'option d'un même groupe ont le même nom. Un groupe contient min 2 boutons. A la différence des cases à cocher, un seul choix est autorisé. Pour pré-cocher l'un de ces boutons d'option, il faut ajouter un checked. PHP chap 6 - les formulaires PHP 126

127 HELHA informatique de gestion
PHP- formulaires 3. Les attributs d’un formulaire Input type = " " <input type="hidden" name="pseudo" value="Mateo21" /> - Dans la page cible, une variable $_POST['pseudo'] sera créée (correspondant à name), et elle aura la valeur "Mateo21" (correspondant à value) <input type= " submit " value= " envoyer" /> Ce bouton déclenche l’envoi des données de tout le formulaire vers le serveur. Le contenu de l’attribut “value” constitue le texte visible du bouton dans le formulaire. Envoi des données Un bouton PHP chap 6 - les formulaires PHP 127

128 HELHA informatique de gestion
PHP- formulaires 3. Les attributs d’un formulaire Input type = " " <input type= " submit “ name = “traitement” value= “ création" /> <input type= " submit “ name = “traitement” value= “ modification" /> <input type= " submit “ name = “traitement” value= “ suppression” /> Si l’on a plusieurs boutons, le champ name est obligatoire et identique pour tous les boutons. idée : effectuer des tâches spécialisées en fonction de la valeur associée. plusieurs boutons Envoi des données PHP chap 6 - les formulaires PHP 128

129 HELHA informatique de gestion
PHP- formulaires 3. Les attributs d’un formulaire Input type = " " <input type=" reset " value=" effacer" /> Ce bouton réinitialise le formulaire. Si les éléments du formulaire ont des attributs value qui définissent des valeurs par défaut, ce sont ces valeurs qui apparaissent au démarrage de la page. Réinitialisation du formulaire PHP chap 6 - les formulaires PHP 129

130 HELHA informatique de gestion
PHP- formulaires 3. Les attributs d’un formulaire D) textarea name= " " <textarea name="message" rows="8" cols="45"> Votre message ici. </textarea> Définit la taille de la zone de saisie. Message par défaut (optionnel) PHP chap 6 - les formulaires PHP 130

131 HELHA informatique de gestion
PHP- formulaires 3. Les attributs d’un formulaire E) Select option <select name="choix"> <option value="choix1"  selected="selected">Choix 1 </option> <option value="choix2">Choix 2</option> <option value="choix3">Choix 3</option> <option value="choix4">Choix 4</option> </select> - Ici, une variable $_POST['choix'] sera créée, et elle contiendra le choix qu'a fait l'utilisateur. - S'il a choisi "Choix 3", la variable $_POST['choix'] sera égale au value correspondant, c'est-à-dire "choix3". choix unique choix par défaut (optionnel) PHP chap 6 - les formulaires PHP 131

132 HELHA informatique de gestion
PHP- formulaires 3. Les attributs d’un formulaire E) Select option <label > vos couleurs préférées ? </label> <br/> <select name = "couleur[ ]" multiple="multiple" size="2"> <option value ="rouge" >rouge</option> <option value ="vert" >vert </option> <option value ="bleu" >bleu</option> <option value ="jaune">jaune</option> </select> - dans les listes de sélection à choix multiple, l’utilisateur doit maintenir enfoncée la touche CTRL pour faire plusieurs choix. choix multiple PHP chap 6 - les formulaires PHP 132

133 HELHA informatique de gestion
PHP- formulaires Exemple de formulaire <body> <!-- //e6_0.php --> <form method="post" action="e6_0bis.php" > <!--//zone de texte --> <input type ="text" name ="nom" /> nom <br/> <!--// password--> <input type ="password" name ="motpasse" /> mot passe <br/> <br/> <!--// case à cocher simple --> <input type ="checkbox" name ="content" value="content"/> content ? <br/> <br/> <!--// cases à cocher multiples --> <input type ="checkbox" name ="lang[ ]" value="frans" /> français <br/> <input type ="checkbox" name ="lang[ ]" value="engels"/> anglais<br/> <input type ="checkbox" name ="lang[ ]" value="nederlands" /> néerlandais<br/> <br/> PHP chap 6 - les formulaires PHP 133

134 HELHA informatique de gestion
PHP- formulaires Exemple de formulaire <!--// bouton radio (bouton d'option)--> <label> Homme </label> <input type = "radio" name ="sexe" value="homme"/> <br/> <label> Femme </label> <input type = "radio" name ="sexe" value="femme"/> <br/> <br/> <!--// liste déroulante à choix unique--> <label> votre signe astro ? </label> <br/> <select name = "signe" > <option value ="poisson" >poisson</option> <option value ="sagittaire" > sagittaire</option> <option value ="taureau" >taureau</option> <option value ="vierge">vierge</option> </select> <br/> PHP chap 6 - les formulaires PHP 134

135 HELHA informatique de gestion
PHP- formulaires Exemple de formulaire <!--// liste déroulante à choix multiple--> <label for="choix"> vos couleurs préférées ? </label> <br/> <select name = "couleur[ ]" multiple="multiple" size="2"> <option value ="rouge" >rouge</option> <option value ="vert" >vert </option> <option value ="bleu" >bleu</option> <option value ="jaune">jaune</option> </select> <br/> <br/> <br/> <!--// envoi du formulaire--> <input type="submit" value ="envoyer"/> </form> </body> PHP chap 6 - les formulaires PHP 135

136 HELHA informatique de gestion
PHP- formulaires 5. Récupération des données du formulaire Que se passe-t-il lorsque l’utilisateur clique sur le bouton d’envoi ? Une requête http est envoyée au serveur à destination du script désigné dans l’attribut action de <form>. La requête contient toutes les associations entre les noms des champs et leur valeur. Le script récepteur est écrit en PHP. 2 cas apparaissent : -la transmission de valeurs uniques (texte par ex) - la transmission de valeurs multiples (cases à cocher par ex) Rem : dans la suite, on n’envisage que l’utilisation de la méthode « post ». Dans l’entête HTTP avec la méthode POST Dans l’URL avec la méthode GET PHP chap 6 - les formulaires PHP 136

137 HELHA informatique de gestion
PHP- formulaires Récupération des données du formulaire ALERTE ROUGE : quand vous affichez les résultats d'un formulaire, prenez l'habitude de TOUJOURS appliquer un htmlspecialchars( ). Même sur une liste déroulante ou un champ caché, un visiteur peut modifier la source pour aller mettre du html ou du javascript ! Récupération des valeurs uniques : texte, bouton radio, liste de sélection B) Récupération de valeurs multiples : groupe de cases à cocher PHP chap 6 - les formulaires PHP 137

138 HELHA informatique de gestion
PHP- formulaires Récupération des données du formulaire Récupération des valeurs uniques : Texte, bouton radio, liste de sélection à choix unique Ces valeurs sont contenues sur le serveur dans un tableau associatif $_POST. - Les clés de ce tableau sont les noms associés aux champs par l’attribut « name ». B) Récupération de valeurs multiples : groupe de cases à cocher, liste de sélection à choix multiple Ces valeurs sont contenues sur le serveur dans un tableau associatif $_POST multidimensionnel, en l’occurrence à 2 dimensions. $_POST [" name" ] $_POST [" name" ] [ i ] PHP chap 6 - les formulaires PHP 138

139 HELHA informatique de gestion
PHP- formulaires 6. Exemple de traitement des données du formulaire <?php //e6_0bis.php // pour les valeurs multiples $lang = $_POST ["lang"]; $couleur= $_POST ["couleur"]; // // trt des valeurs uniques // zones de texte echo "votre nom est : ".$_POST ["nom"]."</br>"; echo "votre mot passe est : ".$_POST ["motpasse"]."</br>"; // bouton radio ( si pas coché, n'existe pas) if (isset ($_POST ["sexe"] ) ) echo "votre êtes un(e) : ".$_POST["sexe"]."</br>« ; PHP chap 6 - les formulaires PHP 139

140 HELHA informatique de gestion
PHP- formulaires 6. Exemple de traitement des données du formulaire // case à cocher (si pas cochée, n'existe pas) if (isset ($_POST ["content"] ) ) echo "vous êtes : ".$_POST ["content"]."</br>"; //liste déroulante à choix unique echo " votre signe astro est : ".$_POST["signe"]."</br>"; // // trt des valeurs multiples // trt cases à cocher multiples echo "vous parlez : " ; foreach ($lang as $valeur) { echo "<li> $valeur </li> "; } PHP chap 6 - les formulaires PHP 140

141 HELHA informatique de gestion
PHP- formulaires 6. Exemple de traitement des données du formulaire //liste déroulante à sélection multiple echo " vos couleurs préférées sont :"; foreach ($couleur as $valeur) { echo "<li> $valeur </li> "; } echo "<a href=\"e6_0.php\"> clique ici pour le retour </a>"; ?> PHP chap 6 - les formulaires PHP 141

142 HELHA informatique de gestion
PHP- formulaires Gérer les boutons d’envoi multiples <body> <!-- //e6_1.php--> <form method="post" action="e6_1bis.php" > <label for="n1"> nombre1</label> <input type ="texte" name ="n1" id="n1"/> <br/> <label for="n2"> nombre2</label> <input type ="texte" name ="n2" id="n2"/> <br/> <br/> <input name="calcul" type="submit" value ="add"/> <input name="calcul" type="submit" value ="sub"/> </form> PHP chap 6 - les formulaires PHP 142

143 HELHA informatique de gestion
PHP- formulaires Gérer les boutons d’envoi multiples <?php //e6_1bis.php $n1 = $_POST ["n1"]; $n2 = $_POST ["n2"]; switch ( $_POST ["calcul"]) { case "add": $result=$n1+$n2; break; case "sub": $result=$n1-$n2; } echo "le résultat est : ".$result."</br>"; echo "<a href=\"e6_1.php\"> clique ici pour le retour </a>"; ?> PHP chap 6 - les formulaires PHP 143

144 HELHA informatique de gestion
PHP- fonctions Les fonctions natives de PHP Créer ses propres fonctions définition, appel de fonction avec retour d’un résultat 2.2 définition, appel de fonction sans retour de valeur 2.3 définition, appel de fonction avec retour de plusieurs valeurs 2.4 passage des arguments par référence Portée des variables 3.1 variables locales globales 3.2 variables super globales PHP chap 7 - les fonctions PHP 144

145 HELHA informatique de gestion
PHP- fonctions Les fonctions natives de PHP Il existe des fonctions natives écrites en langage C Modules d’extension qu’il est possible d’associer à la distribution standard Avant d’utiliser un module, il convient de vérifier qu’il est bien installé sur le serveur de votre hébergeur. // php 7.1 $tabtext = get_loaded_extensions (); foreach ($tabtext as $cle=>$valeur) { echo "$cle    $valeur "; } if (function_exists ('mysql_pconnect') ) echo "la fonction est utilisable"; retourne un tableau contenant tous les modules d’extension installés sur le serveur Vérifie la disponibilité d’une fonction connue Renvoie TRUE si la fonction est utilisable FALSE sinon PHP chap 7 - les fonctions PHP 145

146 HELHA informatique de gestion
PHP- fonctions Les fonctions natives de PHP Voici un petit aperçu des fonctions qui existent pour vous mettre l'eau à la bouche : une fonction qui permet de rechercher et de remplacer des mots dans une variable une fonction qui envoie un fichier sur un serveur une fonction qui permet de créer des images miniatures (aussi appelées thumbnails) une fonction qui envoie un mail avec PHP (très pratique pour faire une newsletter !) une fonction qui permet de modifier des images, y écrire du texte, tracer des lignes, des rectangles etc… une fonction qui crypte des mots de passe. une fonction qui renvoie l'heure, la date... PHP chap 7 - les fonctions PHP 146

147 HELHA informatique de gestion
PHP- fonctions Créer ses propres fonctions Ces fonctions personnalisées peuvent être écrites dans le script lui-même ou dans un script séparé qu’il suffira d’inclure dans de nouveaux scripts à l’aide de l’instruction include () ou require () 2.1 définition, appel de fonction avec retour d’un résultat Exemple 1 : calcul du volume d’un cylindre La formule de calcul est : rayon * rayon * 3.14 * hauteur * (1/3) <?php //e7_2.php //définition de la fonction function VolumeCone($rayon, $hauteur) { $volume = $rayon * $rayon * 3.14 * $hauteur * (1/3); return $volume; } // appel de la fonction $volume = VolumeCone(3, 1); echo "Le volume d'un cône de rayon 3 et de hauteur 1 est de $volume"; ?> PHP chap 7 - les fonctions PHP 147

148 HELHA informatique de gestion
PHP- fonctions Créer ses propres fonctions 2.2 définition, appel de fonction sans retour de valeur Exemple 2 : fonction de lecture d’un tableau <?php //e7_3.php //définition de la fonction // tabuni (nom du tableau, largeur de la bordure, libellé col1, libellé col2) function tabuni($tab,$bord,$lib1,$lib2) { echo "<table border=\"$bord\" width=\"75%\"> <tbody><tr><th>$lib1</th> <th>$lib2</th><tr>"; foreach ($tab as $cle=>$valeur) echo "<tr><td>$cle </td> <td>$valeur </td><tr> "; } echo "<br/></tbody> </table>"; PHP chap 7 - les fonctions PHP 148

149 HELHA informatique de gestion
PHP- fonctions Créer ses propres fonctions Exemple 2 : fonction de lecture de tableaux (suite) // définition des tableaux associtaifs $tab1= array ("France"=>"Paris","Allemagne"=>"Berlin","Espagne"=>"Madrid"); $tab2= array ("Poisson"=>"requin","Cétacé"=>"dauphin","Oiseau"=>"Aigle"); // appels de la fonction tabuni($tab1,1,"Pays","Capitale"); tabuni($tab2,6,"Genre","Espèce"); ?> PHP chap 7 - les fonctions PHP 149

150 HELHA informatique de gestion
PHP- fonctions Créer ses propres fonctions 2.3 définition, appel de fonction avec retour de plusieurs valeurs Via l’utilisation d’un tableau (array), une fonction est capable de renvoyer plusieurs valeurs. Exemple 3 : fonction de calcul (somme et différence) <?php //e7_4.php //définition de la fonction function calculVal($a,$b) { $som = $a + $b; $dif = $a - $b; return array($som,$dif); } // appel de la fonction $result = calculVal (8, 6); echo "somme des 2 nombres : ".$result[0]."<br/>"; echo "différence des 2 nombres : ".$result[1]."<br/>"; ?> PHP chap 7 - les fonctions PHP 150

151 HELHA informatique de gestion
PHP- fonctions 2. Créer ses propres fonctions 2.3 définition, appel de fonction avec valeur par défaut des arguments Il est possible de fixer des valeurs par défaut pour les arguments. Ces valeurs doivent être précisées en tant que constantes. Ces arguments doivent être placés en fin de liste des arguments. Exemple 4 : fonction de mise en page <?php //e7_5.php //définition de la fonction function header_page($title,$bgcolor="red") { echo "<html> <head><title>$title</title></head> <body bgcolor=\"$bgcolor\">"; } // appel de la fonction header_page("cours PHP"); echo "<h1>Utilisation d'un paramètre par défaut</h1>"; ?> PHP chap 7 - les fonctions PHP 151

152 HELHA informatique de gestion
PHP- fonctions 2. Créer ses propres fonctions 2.4 passage des arguments par référence Jusqu’à présent, les arguments étaient passés par valeur. Il est possible de passer un argument par référence en faisant précéder l’argument de « & » dans la définition de la fonction. Exemple 5 : fonction de traitement d’un tableau Le premier argument est passé par référence , le second par valeur. PHP chap 7 - les fonctions PHP 152

153 HELHA informatique de gestion
PHP- fonctions 2. Créer ses propres fonctions Exemple 5 : fonction de traitement d’un tableau <?php //e7_6.php //définition de la fonction //multiplication des éléments d'un tableau par un coeff function prodTab(&$tab,$coeff) { foreach ($tab as $cle=>$val) $tab[$cle]*=$coeff; } // définition du tableau $tabnum = range(1,7); echo "tableau avant : ", print_r($tabnum),"<br/>"; // appel de la fonction prodTab($tabnum,3); echo "tableau après : ",print_r($tabnum),"<br/>"; ?> PHP chap 7 - les fonctions PHP 153

154 HELHA informatique de gestion
PHP- fonctions 2. Créer ses propres fonctions Exemple 6: fonction de calcul <?php //e7_6bis.php //définition de la fonction //addition de 2 éléments numériques function addition ($n1,$n2,&$somme) { $somme= $n1 + $n2; } // appel de la fonction $a=10; addition($a,50,&$resultat); echo "<br> la somme de $a et 50 vaut : $resultat"; ?> PHP chap 7 - les fonctions PHP 154

155 HELHA informatique de gestion
PHP- fonctions Portée des variables 3.1 variables locales et globales Toutes les variables utilisées dans la déclaration d’une fonction sont « locales » au bloc de définition de la fonction.. Une variable définie en dehors d’une fonction est « globale » et accessible partout dans le script qui l’a créée. <?php //e7_7.php //définition d'une variable globale $message = "apprendre le langage PHP"; // fonction utilisant une variable locale function affiche() { echo $message; } // appel de la fonction affiche(); ?> - Le script affiche une page blanche. La variable $message utilisée dans la fonction a une portée locale et n’a pas été initialisée. - la fonction ne fait pas réf à la var $message déclarée globalement. PHP chap 7 - les fonctions PHP 155

156 HELHA informatique de gestion
PHP- fonctions Portée des variables 3.1 variables locales et globales Pour pouvoir utiliser une variable globale dans une fonction, il faut la redéclarer explicitement à ce niveau. 2 façons de réaliser cela : 1) en déclarant « globale » la variable dans la fonction avec le mot-clé « global » 2) en utilisant le tableau associatif prédéfini « $GLOBALS ». PHP chap 7 - les fonctions PHP 156

157 HELHA informatique de gestion
PHP- fonctions Portée des variables 3.1 variables locales et globales 1) en déclarant « globale » la variable dans la fonction avec le mot-clé « global » <?php //e7_8.php //définition de variables globales $message = "apprendre le langage PHP"; $remarque = "c'est amusant<br/>"; // fonction utilisant les variables globales function affiche() { global $message, $remarque; echo $message.",".$remarque; } // appel de la fonction affiche(); ?> PHP chap 7 - les fonctions PHP 157

158 HELHA informatique de gestion
PHP- fonctions Portée des variables 3.1 variables locales et globales 2) en utilisant le tableau associatif prédéfini « $GLOBALS ». Les clés de ce dernier sont les noms des variables globales sans le « $ » <?php //e7_9.php //définition de variables globales $message = "apprendre le langage PHP"; $remarque = "c'est amusant<br/>"; // fonction utilisant des variables globales (version 2) function affiche() { echo $GLOBALS ["message"].",".$GLOBALS ["remarque"]; } // appel de la fonction affiche(); ?> PHP chap 7 - les fonctions PHP 158

159 HELHA informatique de gestion
PHP- fonctions Portée des variables 3.2 variables super globales PHP fournit un ensemble de tableaux prédéfinis qui contiennent les variables serveur ($_SERVER), les variables d’environnement et d’entrée ($_POST, $_GET, $_GLOBALS…). Ces éléments sont super globaux ce qui signifie que ces variables existent sur toutes les pages et sont accessibles partout : au milieu de votre code, au début, dans les fonctions etc... $_SERVER['REMOTE_ADDR'] : sans aucun doute l'information la plus intéressante de $_SERVER. Elle nous donne l'adresse IP du client qui a demandé à voir la page. PHP chap 7 - les fonctions PHP 159

160 HELHA informatique de gestion
PHP- dates La fonction date() Le timestamp 2.1 la fonction time() 2.2 la fonction date() et le timestamp 2.3 la fonction mktime() et le timestamp 2.4 limites La fonction checkdate() La date en français PHP chap 8 - les dates PHP 160

161 HELHA informatique de gestion
PHP- dates La fonction date() La fonction date permet d’afficher, le jour, la date et l’heure sur les pages WEB, qu’elles soient statiques ou créées dynamiquement. <?php $jour = date('d'); echo 'Aujourd\'hui, nous sommes le : ' . $jour; ?> Format 1 : date(‘lettre‘) Remarques : 1) Le plus embêtant avec date c'est que la fonction est faite pour... des anglais. Il n'y a pas moyen qu'elle affiche les jours de la semaine en français. 2) C'est l'heure du serveur qui est renvoyée, et non pas celle du client. Affiche le numéro du jour dans le mois Cfr tableau slide suivant PHP chap 8 - les dates PHP 161

162 HELHA informatique de gestion
PHP- dates Caractères de définition du format d’affichage. La colonne Exemple contient les valeurs telles qu'elles sont apparues le lundi 29 Août 2005 à 0h26 PHP chap 8 - les dates PHP 162

163 HELHA informatique de gestion
PHP- dates La fonction date() <?php echo 'Aujourd\'hui, nous sommes le : ' . date('d/m/Y'); ?> date a créé une chaîne de caractères qui contient jour/mois/année. En fait, vous pouvez mettre ce que vous voulez dans date, dès que la fonction rencontre une lettre qu'elle connaît elle la remplace par la valeur correspondante. Cela veut dire que vous pouvez mettre des espaces, des tirets, ou des slashs comme j'ai fait pour séparer les éléments de date. PHP chap 8 - les dates PHP 163

164 HELHA informatique de gestion
PHP- dates 2. Le timestamp 2.1la fonction time() Vieux des premiers âges babyloniens, le système sexagésimal consiste à diviser le jour en 2’ heures de 60 minutes de soixante secondes. Les informaticiens ne peuvent se contenter d’un système dans lequel l’ajout d’une seconde peut amener à changer d’heure, de jour,….et même de millénaire. Pour pallier ces difficultés, une date arbitraire a été définie , correspondant au 1er janvier h 00m 00s. A partir de cette date, le temps est compté en secondes. Ce nombre de secondes est nommé timestamp ou instant UNIX. En fait, ça représente le début de l'époque où le système d'exploitation Unix a été créé. <?php echo 'Le timestamp actuel est : ' . time(); ?> Cette valeur n’est pas affichée au visiteur du site. Elle sert d’intermédiaire à d’autres fonctions pour calculer des durées, des dates passées ou futures. PHP chap 8 - les dates PHP 164

165 HELHA informatique de gestion
PHP- dates Le timestamp 2.2 la fonction date() et le timestamp Il est possible de fournir un second paramètre à date (après les lettres) : le timestamp sur lequel vous voulez obtenir des informations. <?php // e8_1.php $timestamp = ; echo "<p>Voici plein d'infos sur mon timestamp :</p>"; echo "<ul>"; echo "<li>toto a écrit ces lignes le ". date('d/m/Y', $timestamp)."</li>"; echo "<li>Ce jour-là était un ". date('l', $timestamp)."</li>"; echo "<li>Il était exactement : ". date('H\h i\m\i\n s\s', $timestamp)."</li>"; echo "<li>Il y avait ". date('t', $timestamp)."jours ce mois-là.</li>"; echo "<li>C'était le ".date('z', $timestamp). "ème jour de l'année </li>"; echo "</ul>"; ?> Par exemple, lorsque vous écrirez une news, il vous suffira d'enregistrer juste le timestamp, et vous serez capables grâce à ce nombre de ressortir toutes les infos possibles et imaginables dessus : le jour où la news a été postée, l'heure qu'il était etc... PHP chap 8 - les dates PHP 165

166 HELHA informatique de gestion
PHP- dates Le timestamp 2.3 la fonction mktime() et le timestamp <?php //e8_2.php $vieux_timestamp = mktime(13, 45, 26, 2, 5, 1998); echo 'Le timestamp du 05/02/1998 à 13h 45min 26s était : ' . $vieux_timestamp; ?> Utilité : calcul de la durée entre 2 dates <?php //e8_3.php $timespasse = mktime(13, 45, 26, 2, 5, 1998); $timejour=time(); $duree=$timejour - timepasse; echo "entre le 05/02/1998 à 13h 45min 26s et maintenant il s'est écoulé : " .$duree."secondes"; Je veux le timestamp du 5 Février 1998 à 13h 45min 26s PHP chap 8 - les dates PHP 166

167 HELHA informatique de gestion
PHP- dates Le timestamp 2.4 limites L’inconvénient de ce système est de fournir des timestamp négatifs pour des dates antérieures à 1970 ! le timestamp est celui calculé côté serveur , il n’est pas forcément identique à celui du poste client. le timestamp devient de plus en plus gros, et ce nombre sera tellement gros en 2037 que ça ne marchera plus. PHP chap 8 - les dates PHP 167

168 HELHA informatique de gestion
PHP- dates La fonction checkdate() //e8_4.php <form method="post" action="e8_4bis.php" > <legend>Entrez votre date de naissance JJ/MM/AAAA</legend> <input type = "text" name = "date"/> <input type ="submit" value = "envoi"/> </form> <?php //e8_4bis.php $date = $_POST["date"]; $tabdate = explode("/",$date); if(!checkdate($tabdate [1],$tabdate[0],$tabdate[2])) echo "la date n'est pas valide. recommencez <hr/> "; else echo "<hr/> la date $date est valide! <hr/>"; ?> La chaîne de caractères contenue dans $_POST[" date "] est décomposée grâce à la fonction explode(). Chaque élément de la date est récupéré dans un élément de tableau. Ces données sont ensuite transmises à la fonction checkdate() dans l’ordre moi, jour, année. PHP chap 8 - les dates PHP 168

169 HELHA informatique de gestion
PHP- dates 4. La date en français <?php //e8_5.php // afficher la date en français $semaine= array (" dimanche "," lundi "," mardi ", " mercredi ", " jeudi "," vendredi "," samedi "); $mois= array (1=>" janvier"," février ", " mars ", " avril ", " mai ", " juin ", " juillet ", " aout ", " septembre ", " octobre", " novembre ", " décembre "); echo "aujourd'hui ".$semaine[date ('w')]." ".date('j')." ". $mois[date('n')]." ".date('Y')."<br/>"; ?> - On récupère le no du jour de la semaine avec date(‘j’) - On récupère le no du mois avec date(‘n’) Il serait préférable de définir une fonction qui réalise ce traitement PHP chap 8 - les dates PHP 169

170 HELHA informatique de gestion
PHP – FICHIERS. Création d’un fichier // teste l’existence d’un fichier If (!file_exists(‘nomfich’) // crée un fichier vide avec date de dernière utilisation // nb le fichier sera accessible en écriture { touch(nomdufich,[timestamp]);} ex. touch(‘monfich.txt,time()) 2. Ouverture d’un fichier $id_file=fopen($nomfich,$mode,[$Boolpath]) $nomfich = ‘monfich.txt’ ou ‘..\chemin\nomfich ou ‘ $mode = mode d’ouverture ‘r’ lecture ‘r+’ lecture-écriture(dbt fich) ‘w’ écriture dbt fich ‘w+’ lecture-écriture dbt fich ‘a’ ajout créé si inex ‘a+’ ajout-lecture créé si inex $BoolPath : si TRUEla recherche du fichier est étendue à tous les sous répertoires PHP chap 11 - les fichiers PHP 170

171 HELHA informatique de gestion
PHP – FICHIERS. $id_file = identifiant du fichier Sera utilisé comme premier paramètre de la plupart des fonctions de manipulation du fichier. Il est de la forme Resource id#n oµ n est un entier incrémenté de 1 En cas d’échec à l’ouverture $id_file = FALSE NB Pour créer un fichier temporaire (pendant la durée de la session en cours) on utilisera : $id_file = tmpfile() 3. Fermeture d’un fichier $Boolresu = fclose($id_file) PHP chap 11 - les fichiers PHP 171

172 HELHA informatique de gestion
PHP – FICHIERS. 4. Verrouillage des fichiers $boolresu = flock($id_file, Kmodeverrou) Kmodeverrou = Constante représentant le mode de verrou demandé LOCK_SH bloque l’écriture par les autres scripts LOCK_EX bloque l’écriture et la lecture par les autres scripts LOCK_UN Enlève les verrous précédemment mis !!! Ne pas oublier $boolresu retourne FALSE si le verrou demandé n’a pu être obtenu Ecriture dans un fichier fwrite($id_file, $chaine,[N]) ou fputs($id_file, $chaine,[N]) Si N est précisé, seuls les N premiers caractères de la chaîne seront écrits. PHP chap 11 - les fichiers PHP 172

173 HELHA informatique de gestion
PHP – FICHIERS. 6. Formatage des données On sépare les différents champs par un séparateur et on ajoye un fin d’enregistrement Exemple : fwrite($id_file,$nom. ";"  .$prenom.  ";“ .$adr . " \n") Lecture des fichiers Plusieurs fonctions sont disponibles = fgets() fread() fseek() fgetcvs() readfile() passthru() 7.1 Lecture d’un record à la fois $chaine = fgets($id_file, Nbytes) Lecture depuis le début de N bytes. La lecture s’arrête après N bytes ou si \n est rencontré ou fin de fichier rencontrée. PHP chap 11 - les fichiers PHP 173

174 HELHA informatique de gestion
PHP – FICHIERS. Exemple : while($ligne=fgets($id_file,100) { $tab=explode(‘;’,$ligne); Echo ‘nom: ‘ . $tab[0] . ‘ prénom: ‘ . $tab[1] . ‘adr: ‘ . $tab[2]; } NB voir aussi fgetcvs() 7.5 7.2 Lecture d’un nombre détermine de caractères $chaine = fread($id_file, N) Lit N caractères depuis le début du fichier sauf si \n est rencontré ou la fin de fichier rencontrée. NB utilisé pour lire des records de longueurs fixes sans fin d’enregistrement PHP chap 11 - les fichiers PHP 174

175 HELHA informatique de gestion
PHP – FICHIERS. 7.3 Lecture d’un caractère à la fois $chaine = fgetc($id_file) Lit 1 caractère depuis le début du fichier sauf si fin de fichier rencontrée. 7.4 Lecture d’une partie de fichier On peut faire débuter la lecture à n’importe quel endroit du fichier. $boolval fseek($id_file, N) // positionne le pointeur sur le Nème byte N = Nbre d’octects à partir du début du fichier à partir d’où doit commencer la lecture. !!! Ne fait aucune lecture $boolval = FALSE si erreur On peut remettre le pointeur au début du fichier avec rewind($id_file) La fonction filesize($id_file) retourne le Nbre de bytes du fichier PHP chap 11 - les fichiers PHP 175

176 HELHA informatique de gestion
PHP – FICHIERS. 7.5 Lecture de données formatées $array = fgetcvs($id_file,NbreBytes,$separateur) Retourne directement une table (comme avec la fonction explode()) des différentes valeurs en utilisant le séparateur indiqué Lit un maximum de N bytes, s’arrête à la fin du fichier ou à la rencontre de /n (fin d’enregistrement) 7.6 Lecture de la totalité d’un fichier Si on doit lire tout un fichier (par exemple page web statique) sans analyser son contenu on utilisera : readfile($nomfichier, [Boolpath]) Tout le contenu du fichier est directement envoyé au browser (comme l’aurait fait echo) Si Boolpath = TRUE le fichier sera recherché dans tous les sous-répertoires NB Le fichier ne doit pas être ouvert préalablement PHP chap 11 - les fichiers PHP 176

177 HELHA informatique de gestion
PHP – FICHIERS. On peut également utiliser : $tableau = file($nomdufichier) Lit tout le fichier et retourne un tableau dont chaque élément est constitué d’une seule ligne du fichier (/n) Ou encore : $id_file=fopen($nomfich,$mode) // le fichier doit être ouvert !!! fpassthru($id_file) Tout le contenu du fichier est directement envoyé au browser (comme l’aurait fait echo) NB Il ne faut pas fermer le fichier, il l’est automatiquement à la fin de fpassthru() PHP chap 11 - les fichiers PHP 177

178 HELHA informatique de gestion
PHP – FICHIERS. 8. Modification des fichiers $boolret = copy($fn1,$fn2) //copier le fichier fn1 sur fn2 $boolret = rename($fn1,$fn2) //renommer le fichier fn1 en fn2 $boolret = unlink($fn1) //supprimer le fichier fn1 $boolret = file_exists($fn1,$fn2) //Vérifier la présence de fn1 $intret = filesize($fn1) // taille en bytes de fn1 $boolret = is_file($fn1) //Vérifier si fn1 est un fichier (pas un répertoire) $boolret = is_readable($fn1) //Vérifier si fn1 est accessible en lecture $boolret = is_uploaded_file($fn1) //Vérifier si fn1 provient d’un upload $string = filetype($fn1) // retourne ‘file’ si fichier, ‘dir’ si répertoire $integer = fileatime($fn1) // retourne dernier accès (timestamp) de fn1 $integer = filemtime($fn1) // retourne dern. mod data de fn1 $integer = filectime($fn1) // retourne dernier mod des permissions de fn1 $string = realpath($fn1) // retourne chemin complet de fn1 $string = basename($url) // retourne le nom du fichier de l’URL complet PHP chap 11 - les fichiers PHP 178

179 HELHA informatique de gestion
PHP – COOKIES. Définition Petits fichiers pouvant être écrits par un script sur l’ordinateur du visiteur d’un site. Limites : Un site déterminé ne peut écrire que max 20 cookies sur le même poste client. Chaque cookie ne peut dépasseer 4K Un cookie n’est accessible que par le site qui l’a écrit Ecriture des cookies Attention : aucun contenu HTML ne peut avoir été envoyé avant l’écriture d’un cookie PHP chap les cookies PHP 179

180 HELHA informatique de gestion
PHP – COOKIES. $boolean = setcookie($nomcookie, $valeur, $datefin,$chemin,$domaine,$securite); $nomcookie : nom que l’on donne au cookie (chaîne) $valeur : valeur que l’on donne au cookue (chaîne) $datefin : entier (timestamp) servant à déterminer la date d’expitation du cookie. Si absent -> valable uniquement pendant la session exemple : $datefin = time()+86400; // valable 24 heures $chemin : chemin d’accès des scripts autorisés à accéder au cookie (facultatif) $domaine : nom complet du domainequi peut accéder au cookie (facultatif) ex : $securite : TRUE transmis par https, FALSE par http (défaut) NB setcookie() renvoie FALSE en cas de problème Exemple : $ok=setcookie( "nom" , " lorent",time()+86400, " /client/fact "); PHP chap les cookies PHP 180

181 HELHA informatique de gestion
PHP – COOKIES. 3. Supprimer un cookie Il suffit d’appeler setcookie($nomcookie) sans donner de valeur 4. Rendre un cookie innaccessible Il suffit de lui donner une date d’expirantion antérieure à la date actuelle Exemple : $ok=setcookie( "nom" , " lorent",time()-3600); 5. Plusieurs valeurs sous un même nom de cookie setcookie("client[nom]" , " lorent",time()+86400, ); // attention : les clé setcookie("client[prenom]" , " Jean",time()+86400, );// sans guillemets !!! Ou bien : foreach($tablassoc as $cle=>$valeur) //. À partir d’un tableau associatif {setcookie("client[$cle]" , $valeur,time()+86400, );} PHP chap les cookies PHP 181

182 HELHA informatique de gestion
PHP – COOKIES. 6. Lire un cookie Les cookies sont accessibles via la variable superglobale $_COOKIE Il s’agit d’un tableau associatif ayant comme clé le nom du cookie Par exemple : $nom = $_COOKIE["nom" ]; Ou bien : $prenom = $_COOKIE [ "client" ] [“prenom" ]; Ou encore : foreach($_COOKIE[" client" ] as $cle=>$valeur) { $tablassoc[$cle] = $valeur ; } PHP chap les cookies PHP 182

183 HELHA informatique de gestion
PHP – SESSIONS. Définition Mécanisme qui permet de conserver des informations provenant d’une page web, pour être utilisées dans d’autres pages du site par un même visiteur. Aucun autre visiteur n’a accès à ces informations. Mise en œuvre des sessions En début de chaque page ayant accès aux variables de session, il faut appeler la fonction $ok=session_start(); Chaque utilisateur reçoit un sessionID (SID) qui sera transmis d’une page à l’autre de deux manières différentes : Soit dans un cookie Soit en étant ajouté à l’URL de la page Le script définit les variables de session et y accède en utilisant le tableau associatif superglobal $_SESSION dont les clés sont les noms des variables Exemple : $_SESSION[‘mavar’] = 25; Fermeture de la session et destruction des variables de session session_unset(); session_destroy; PHP chap les sessions PHP 183

184 HELHA informatique de gestion
PHP – SESSIONS. 3. Remarques Les variables de session sont stockées sur le serveur et non sur le poste client. Elles sont en général stockées dans un dossier /tmp ou /sessions. Ces fichier on pour nom sess_xxxxxxxx (où xxxxxxx est le sessionID) 4. Session avec cookies Il s’agit d’une manière simple de transmettre le sessionID (SID)d’une page à l’autre du site. Pour utiliser cette méthode il faut 3 conditions : php.in  session.use_cookies on Le browser doit accepter les cookies Chaque page du site commence par l’appel de session_start() NB si dans php.ini on a configuré session.auto_start on, le serveur générera automatiquement un session_start() pour toutes les pages du site PHP chap les sessions PHP 184

185 HELHA informatique de gestion
PHP – SESSIONS. 3. Remarques Les variables de session sont stockées sur le serveur et non sur le poste client. Elles sont en général stockées dans un dossier /tmp ou /sessions. Ces fichier on pour nom sess_xxxxxxxx (où xxxxxxx est le sessionID) 4. Session avec cookies Il s’agit d’une manière simple de transmettre le sessionID d’une page à l’autre du site. Pour utiliser cette méthode il faut 3 conditions : php.ini  session.use_cookies on Le browser doit accepter les cookies !!! Chaque page du site commence par l’appel de session_start() NB si dans php.ini on a configuré session.auto_start on, le serveur générera automatiquement un session_start() pour toutes les pages du site (pas recommandé !!!) PHP chap les sessions PHP 185

186 HELHA informatique de gestion
PHP – SESSIONS. 5. Session sans cookies Le nom de la session par défaut est PHPSESSID et l’identifiant aléatoire de la session sont contenus dans la constante SID sous la forme PHPSESSID=xxxxxxxxxxxxxxx La transmission du SID se fera par son ajoute dans l’url de la manière suivante : <a href=‘page2.php?<?php echo SID ?>’> vers page2</a> Autres fonctions pour les sessions $name = session_name(); // retourne le nom de la session session_name(‘nouveaunom’) ;// définit un nouveau nom pour la session $id = session_id(); // retourne l’identifiant de la session session_id(‘newID’); // définit un nouveau sessionID $path=session_save_path();// retourne le chemin du serveur où sont stockées les données de la session session_write_close(); // écrit les variables session sur le serveur et ferme la session PHP chap les sessions PHP 186

187 HELHA informatique de gestion
PHP – SESSIONS. Afficher toutes les variables de session <?php // begin the session session_start(); // loop through the session array with foreach foreach($_SESSION as $key=>$value)     {     // and print out the values     echo 'The value of $_SESSION['."'".$key."'".'] is '."'".$value."'".' <br />';     } ?> PHP chap les sessions PHP 187

188 HELHA informatique de gestion
PHP – SESSIONS. 8. Comment sont gérées les variables de session <?php /*** begin a session ***/ session_start(); if(isset($_COOKIE['PHPSESSID']))         {         echo 'The session ID has been store in a cookie';         } if (defined(SID))         {         echo 'The session ID has been stored in the query string';         } ?> PHP chap les sessions PHP 188

189 HELHA informatique de gestion
PHP – . Fonction de base d’envoi d’un mail $ok = mail($dest, $objet, $texte, [$entete]) $dest = adresse mail du destinataire ( si plusieurs  viurgules) $objet = objet du mail $texte = contenu ou format texte ou HTML $entete (facultatif) = à utiliser si le format n’est pas texte ni HTML ou si ajoute de copie confirme, etc … les différentes en-têtes sont séparées par : \n sous serveur UNIX \r\n sou serveur Windows Mail() retrourne FALSE si problème PHP chap les s PHP 189

190 HELHA informatique de gestion
PHP – . 2. Options de mail (4ème paramètre) - MAIL From: adresse mail de l’expéditeur cc: adresses des destinaires des copies cci : idem (adresses cachées) Reply-To: adresse de réponse X-Mailer: nom du logiciel d’envoi du courrier Date: date de l’ au format JJ MM AAAA h:m:s +0N00 (N est le décalage horaire) Exemple : $entete = $entete $entete .=‘Date:’ . Date("D, j M Y H:i:s +0100 "); PHP chap les s PHP 190

191 HELHA informatique de gestion
PHP – . 2. Options de mail (4ème paramètre) - MIME Les types MIME (Multipurpose Internet Mail Extension) permettent d’insérer des images, sons etc … dans les mails. MIME-Version: = version MIME utilisée (doit être le 1er) Content-Type: = type du contenu du mail ex. Content-Type: text/html;charset=iso Content-Transfer-Encoding: = mode de codage du document ex. Content-Transfer-Encoding: 8bit PHP chap les s PHP 191


Télécharger ppt "HELHA informatique de gestion"

Présentations similaires


Annonces Google