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

PHP- Table des matières 1.Introduction 2.Les données 3.Les instructions de contrôle 4.Les chaînes de caractères 5.Les tableaux 6.Les formulaires 7.Les.

Présentations similaires


Présentation au sujet: "PHP- Table des matières 1.Introduction 2.Les données 3.Les instructions de contrôle 4.Les chaînes de caractères 5.Les tableaux 6.Les formulaires 7.Les."— Transcription de la présentation:

1 PHP- Table des matières 1.Introduction 2.Les données 3.Les instructions de contrôle 4.Les chaînes de caractères 5.Les tableaux 6.Les formulaires 7.Les fonctions 8.Les dates 9.Les fichiers 10.Les cookies 11.Les sessions 12.Les s 1PHP chap 1 introduction

2 PHP- INTRODUCTION 1.Quest-ce que PHP ? 2.Structure dun fichier HTML 3.Rôle de PHP 4.Cycle de vie dune page PHP 5.Inclusion de fichiers externes 6.Ajout de commentaires 7.Séparateur dinstructions – bloc dinstructions 8.Minuscules-majuscules 2PHP chap 1 introduction

3 PHP- INTRODUCTION 1. Quest-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 dinsé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 » ( ) sont interprétés par le serveur avant que le document soit envoyé au client qui est à lorigine de la requête. 3PHP chap 1 introduction

4 PHP- INTRODUCTION 2. Structure dun fichier HTML : premier programme PHP 4PHP 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 : client Serveur Web PHP DB 5PHP chap 1 introduction

6 PHP- INTRODUCTION 4. Cycle de vie dune page PHP : - envoi dune 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 dun fichier dont le contenu est purement HTML 6PHP 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 dutilisation courante. Les fichiers de code php peuvent avoir lune des extensions suivantes :.php.inc.inc.php 7PHP chap 1 introduction

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

9 PHP- INTRODUCTION premier programme PHP 9PHP chap 1 introduction

10 PHP- VARIABLES – CONSTANTES - TYPES 1.Les variables 2.Les constantes 3.Les types de données 4.Les données numériques 5.Les booléens 6.Les chaînes PHP chap 2 - types de données10

11 PHP- VARIABLES – CONSTANTES - TYPES 7.Les tableaux 8.Les objets 9.Le type ressource 10.Le type NULL PHP chap 2 - types de données11

12 PHP chap 2 - types de données PHP- VARIABLES – CONSTANTES - TYPES 1. 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 nimporte où. La déclaration des variables nest pas obligatoire. Linitialisation des variables nest pas obligatoire. 12

13 PHP- VARIABLES – CONSTANTES - TYPES 1.Les variables - on ne déclare pas le type dune variable, cest sa valeur qui détermine son type. - excepté lorsquelle est déclarée dans une fonction, la portée dune variable est GLOBALE (elle concerne tout le script à partir de sa déclaration) PHP chap 2 - types de données13

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

15 PHP chap 2 - types de données PHP- VARIABLES – CONSTANTES - TYPES 1.Les variables exemple e2_1.PHP 15

16 PHP chap 2 - types de données PHP- VARIABLES – CONSTANTES - TYPES 1.Les variables exemple e2_2.PHP 16

17 PHP chap 2 - types de données PHP- VARIABLES – CONSTANTES - TYPES 1.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 17

18 PHP chap 2 - types de données PHP- VARIABLES – CONSTANTES - TYPES 18

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

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

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

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

23 PHP chap 2 - types de données PHP- VARIABLES – CONSTANTES - TYPES 3.Les types de données - contrôler létat dune 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 23

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

25 PHP chap 2 - types de données PHP- VARIABLES – CONSTANTES - TYPES 4.4Les fonctions mathématiques 25

26 PHP chap 2 - types de données PHP- VARIABLES – CONSTANTES - TYPES 26

27 PHP chap 2 - types de données PHP- VARIABLES – CONSTANTES - TYPES 27

28 PHP chap 2 - types de données PHP- VARIABLES – CONSTANTES - TYPES 5.1Les booléens affiche 1 5.2règles d évaluation falsetrue $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 = -1 - chaine " false " - var de type ressource 28

29 PHP chap 2 - types de données PHP- VARIABLES – CONSTANTES - TYPES 5.3Les opérateurs de comparaisonlogiques == != ou >= === !== OR || XOR AND && ! Teste lidentité - des valeurs - des types - équivalents -pas même priorité 29

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

31 PHP chap 2 - types de données PHP- VARIABLES – CONSTANTES - TYPES 31

32 PHP chap 2 - types de données PHP- VARIABLES – CONSTANTES - TYPES 32

33 PHP chap 2 - types de données PHP- VARIABLES – CONSTANTES - TYPES 7.1Les 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) 33

34 PHP chap 2 - types de données PHP- VARIABLES – CONSTANTES - TYPES 7.2Les 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] "; 7.3Les tableaux associatifs (e2_3.php) $utilis [" prenom "] = "stephane"; $utilis [" nom "] = "Dumont" ; $utilis [" privilege "] = "admin" ; echo " le nom est : {$utilis[" nom "] } "; echo " le nom est ", $utilis [" nom "], " "; $utilis Stéphane Dumont admin 34

35 PHP chap 2 - types de données PHP- VARIABLES – CONSTANTES - TYPES $tab["php"] = "php.net"; $tab["mysql"] = "mysql.com"; $tab["xhtml"] = "w3.org"; echo " mes liens préférés "; echo " PHP "; echo " MySql "; echo " XHTML "; Exemple dutilisation de tableaux (e2_4.php) 35

36 PHP chap 2 - types de données PHP- VARIABLES – CONSTANTES - TYPES 8 Les objets (cfr chap 9) 9Le type ressource (cfr chap 15) utilisé pour les connexions aux bases de données 10Le type NULL attribué à une variable qui na pas de contenu qui a été initialisée avec NULL dès quune 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. 36

37 PHP chap 3 - instructions de contrôle37 PHP- INSTRUCTIONS DE CONTROLE 1.Les instructions conditionnelles 1.1 if 1.2 if else 1.3 opérateur ? 1.4 switch 2.Les instructions de boucle 2.1 for 2.2 while 2.3 do while 2.4 foreach 3.La gestion des erreurs 3.1 suppression des messages derreur

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

39 PHP chap 3 - instructions de contrôle 39 PHP- VARIABLES – CONSTANTES - TYPES 100) { echo " pour un achat de $prix &euro, la remise est de 15% "; $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 1O% "; $pnet = $prix * 0.90; echo " le prix net est de $pnet"; }

40 PHP chap 3 - instructions de contrôle 40 PHP- VARIABLES – CONSTANTES - TYPES else { echo " pour un achat de $prix &euro, la remise est de O5% "; $pnet = $prix * 0.95; echo " le prix net est de $pnet"; } ?> 1.3opérateur ?

41 PHP chap 3 - instructions de contrôle 41 PHP- VARIABLES – CONSTANTES - TYPES 1.4switch

42 PHP chap 3 - instructions de contrôle 42 PHP- VARIABLES – CONSTANTES - TYPES 2.1La boucle for

43 PHP chap 3 - instructions de contrôle 43 PHP- VARIABLES – CONSTANTES - TYPES 2.2La boucle while

44 PHP chap 3 - instructions de contrôle 44 PHP- VARIABLES – CONSTANTES - TYPES 2.3La boucle do while

45 PHP chap 3 - instructions de contrôle 45 PHP- VARIABLES – CONSTANTES - TYPES 2.4La boucle foreach Utilisée pour parcourir lensemble des éléments dun 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 -- $indice contient successivement lindice

46 PHP chap 3 - instructions de contrôle 46 PHP- VARIABLES – CONSTANTES - TYPES $val) { echo "2 exposant $ind vaut $val "; } ?> Rem : 1)$tab [$i][0] permet de récupérer la première lettre de la chaîne de caractères contenue dans tab[$i]. 2)Count($tab) retourne le nombre déléments contenus dans $tab

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

48 PHP chap 3 - instructions de contrôle 48 PHP- VARIABLES – CONSTANTES - TYPES 3.1La suppression des messages derreur Pour éviter les messages : 1) devant lappel dune (" 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….

49 PHP chap 3 - instructions de contrôle 49 PHP- VARIABLES – CONSTANTES - TYPES 3.1La suppression des messages derreur Pour éviter les messages : 2) Utiliser la fonction error_reporting ( ) qui permet de nafficher que les erreurs dun certain niveau. error_reporting (E_WARNING | E_PARSE)

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

51 PHP chap 4 - chaînes de caractères 51 PHP – CHAINES CARACTERES 5.Recherche de sous-chaînes 5.1 une chaîne vue comme un tableau 5.2 les fonctions strstr ( ) et stristr ( ) 5.3 la fonction strrchr ( ) 5.4 les fonctions substr ( ), substr_count ( ), str_replace () 5.5 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

52 PHP chap 4 - chaînes de caractères 52 PHP – CHAINES CARACTERES 1. affichage des chaînes Dans une page WEB, lessentiel du contenu est constitué de chaînes de caractères. -Quand le contenu de la page est créé dynamiquement à partir dun fichier ou dune DB, ce sont surtout des chaînes de caractères qui sont manipulées. - toutes les variables issues de lenvoi dun formulaire sont de type string. Pour afficher des données : echo

53 PHP chap 4 - chaînes de caractères 53 PHP – CHAINES CARACTERES 1. affichage des chaînes La fonction « echo » est utilisable de plusieurs façons pour afficher plusieurs chaînes à la suite lune de lautre. Concaténation avec. Séparation des expressions par, Les fonctions ne peuvent être incluses dans une chaîne unique

54 PHP chap 4 - chaînes de caractères 54 PHP – CHAINES CARACTERES 2.Affichage formaté Les fonctions « printf » et « sprintf » permettent dobtenir 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 "

55 PHP chap 4 - chaînes de caractères 55 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

56 PHP chap 4 - chaînes de caractères 56 PHP – CHAINES CARACTERES Définition de la chaîne de formatage Elle est composée de - un texte ordinaire explicatif - directives daffichage (= 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 - N1. N2 L caractère remplissage (0 espace autre) pr compléter la chaîne si long fixe caractère – pour aligner à droite, par défaut alignement à gauche Nombre de caractères de la chaîne Nombre de décimales à afficher pour les décimaux Lettre indiquant le type de la valeur à afficher OBLIGATOIRE

57 PHP chap 4 - chaînes de caractères 57 PHP – CHAINES CARACTERES Caractères de formatage du type de données

58 PHP chap 4 - chaînes de caractères 58 PHP – CHAINES CARACTERES Caractères de formatage du type de données

59 PHP chap 4 - chaînes de caractères 59 PHP – CHAINES CARACTERES

60 PHP chap 4 - chaînes de caractères 60 PHP – CHAINES CARACTERES 3.Longueur dune 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 dune chaîne Retrouve le code UNICODE dun caractère Obtient un caractère à partir de son code UNICODE

61 PHP chap 4 - chaînes de caractères 61 PHP – CHAINES CARACTERES 8) echo "login erroné"; else echo "votre login est : $login "; //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; ?>

62 PHP chap 4 - chaînes de caractères 62 PHP – CHAINES CARACTERES 4.Mise en forme dune 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

63 PHP chap 4 - chaînes de caractères 63 PHP – CHAINES CARACTERES 4.Mise en forme dune 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

64 PHP chap 4 - chaînes de caractères 64 PHP – CHAINES CARACTERES 4.Mise en forme dune chaîne 4.2 gestion des espaces string wordwrap (string $ch [, int N [, string car [, boolean coupe ] ] ] ) 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 coupe (= TRUE) permet deffectuer une césure des mots dont la longueur dépasse N

65 PHP chap 4 - chaînes de caractères 65 PHP – CHAINES CARACTERES 4.Mise en forme dune chaîne 4.3 entités HTML et caractères spéciaux Définitions : 1.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. 2.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é

66 PHP chap 4 - chaînes de caractères 66 PHP – CHAINES CARACTERES 4.Mise en forme dune 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. (&, ",, )

67 PHP chap 4 - chaînes de caractères 67 PHP – CHAINES CARACTERES 4.Mise en forme dune chaîne 4.3 entités HTML et caractères spéciaux string addslashes (string $ch ) Utile avant denregistrer 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 dun 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 \

68 PHP chap 4 - chaînes de caractères 68 PHP – CHAINES CARACTERES 4.Mise en forme dune 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 ">" Désigne lalphabet utilisé, par défaut ISO (Europe occidentale) Chaîne à convertir

69 PHP chap 4 - chaînes de caractères 69 PHP – CHAINES CARACTERES 4.Mise en forme dune 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 ! affichage Avant : Ceci est une variable qui contient du HTML Après : Ceci est une variable qui contient du HTML

70 PHP chap 4 - chaînes de caractères 70 PHP – CHAINES CARACTERES 4.Mise en forme dune 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]) Désigne lalphabet utilisé, par défaut ISO (Europe occidentale) Chaîne à convertir

71 PHP chap 4 - chaînes de caractères 71 PHP – CHAINES CARACTERES 5.Recherche de sous-chaînes 5.1 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 dindice cste : $ch [cste] ou encore si $ind contient un entier :$ch[$ind]

72 PHP chap 4 - chaînes de caractères 72 PHP – CHAINES CARACTERES 5.Recherche de sous-chaînes 5.2 les fonctions strstr ( ) et stristr ( ) Elles permettent dextraire une sous-chaîne dune 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) Sensible à la casse insensible à la casse

73 PHP chap 4 - chaînes de caractères 73 PHP – CHAINES CARACTERES 5.Recherche de sous-chaînes 5.3 la fonction strrchr ( ) Elle permet dextraire une sous-chaîne dune 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) sensible à la casse

74 PHP chap 4 - chaînes de caractères 74 PHP – CHAINES CARACTERES 5.Recherche de sous-chaînes 5.4 les fonctions substr ( ), substr_count ( ), str_replace () Elles permettent dextraire des sous-chaînes en fonction des indices de caractères dans la chaîne analysée (le premier étant lindice 0) string substr (string $ch, integer ind [, integer N]) Retourne la chaîne contenant N caractères de $ch extraits à partir de lindice ind inclus. (Si N est omis, la sous-chaîne extraite va jusque la fin de $ch.

75 PHP chap 4 - chaînes de caractères 75 PHP – CHAINES CARACTERES 5.Recherche de sous-chaînes 5.4 les fonctions substr ( ), substr_count ( ), str_replace () Elles permettent dextraire des sous-chaînes en fonction des indices de caractères dans la chaîne analysée (le premier étant lindice 0) int substr_count (string $ch, string $ssch) Retourne le nombre doccurrences dune sous- chaîne $ssch dans une chaîne $ch. (sensible à la casse)

76 PHP chap 4 - chaînes de caractères 76 PHP – CHAINES CARACTERES 5.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 ] ) Retourne la chaîne $ch dans laquelle toutes les occurrences de $ch1 sont remplacées par $ch2. $var contient le nombre de remplacements à effectuer

77 PHP chap 4 - chaînes de caractères 77 PHP – CHAINES CARACTERES 5.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 dune sous-chaîne $ssch ou FALSE Retourne la postion du premier caractère de la dernière occurrence dune 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

78 PHP chap 4 - chaînes de caractères 78 PHP – CHAINES CARACTERES 5.Recherche de sous-chaînes 5.5 les fonctions strpos ( ), stripos ( ), strrpos( ), strripos( ) Opérateur didentité

79 PHP chap 4 - chaînes de caractères 79 PHP – CHAINES CARACTERES 5.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 dune chaîne dans des variables séparées.

80 PHP chap 4 - chaînes de caractères 80 PHP – CHAINES CARACTERES 6.Comparaison de chaînes 6.1 utilisation des opérateurs usuels de comparaison == === = Exemples :

81 PHP chap 4 - chaînes de caractères 81 PHP – CHAINES CARACTERES 6.Comparaison de chaînes 6.2 utilisation des fonctions strcmp(), strcasecmp() elles permettent de comparer 2 chaînes et retournent : - -1 si $ch1 $ch2 int strcmp (string $ch1, string $ch2) int strcasecmp (string $ch1, string $ch2) Sensible à la casse insensible à la casse

82 PHP chap 4 - chaînes de caractères 82 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

83 PHP chap 4 - chaînes de caractères 83 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 lordre naturel int strnatcmp (string $ch1, string $ch2) int strnatcasecmp (string $ch1, string $ch2) Sensible à la casse insensible à la casse

84 PHP chap 4 - chaînes de caractères 84 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

85 PHP chap 4 - chaînes de caractères 85 PHP – CHAINES CARACTERES 7.Transformation de chaînes en tableaux 7.1 utilisation de la fonction explode () elle extrait chacun des « mots » dune 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)

86 PHP chap 4 - chaînes de caractères 86 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 dun tableau séparés par un caractère donné string implode (string sep, string $tab)

87 PHP chap 5 - les tableaux87 PHP – LES TABLEAUX Plan 1.Principes 2.Créer des tableaux 2.1 Définir directement les valeurs du tableau 2.2 Utiliser la fonction array() 2.3 La fonction count($tableau) 2.4 Les tableaux multi dimensions 3.Créer des suites 4.Créer un tableau à partir dune chaîne 5.Comptage du nombre de valeurs dun tableau 6.Lecture dun 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()

88 PHP chap 5 - les tableaux88 PHP – LES TABLEAUX Plan 7. Manipuler des tableaux 7.1 Extraire une partie dun tableau 7.2 Ajouter et enlever des éléments 8.Opérations sur plusieurs tableaux 8.1 Fusionner des tableaux 8.2 Intersection et différence de deux tableaux 9.Tri des tableaux 9.1 Tri des tableaux indicés 9.2 Tri des tableaux associatifs Tri des valeurs Tri des clés 10.Opérer une sélection des éléments 11.Appliquer une fonction à un tableau 12.Lobjet ArrayObject

89 PHP chap 5 - les tableaux89 PHP – LES TABLEAUX 1.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 1 er 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

90 PHP chap 5 - les tableaux90 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 nexistent pas (valeur NULL) $tab[21] = TRUE; $tab[ ] = " exemple "; // si indice non précisé indice suivant (ici 22) $ind = 8; $tab[$ind] = 50; // lindice 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

91 PHP chap 5 - les tableaux91 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) dun tableau t donné en paramètre.

92 PHP chap 5 - les tableaux92 PHP – LES TABLEAUX 2.4 Les tableaux multi dimensions : En PHP, pas de méthode explicite pour la création dun tableau à n dimensions car un élément dun 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.

93 PHP chap 5 - les tableaux93 PHP – LES TABLEAUX Lecture dun 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]. ; }

94 PHP chap 5 - les tableaux94 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 DUNE CHAÎNE explode(sép, ch) $chaine= " La cigale et la fourmi" ; $tabl = explode(" ",$chaine); // -> $tabl[0] = La, $tabl[4] = fourmi

95 PHP chap 5 - les tableaux95 PHP – LES TABLEAUX 5. COMPTAGE DU NOMBRE DE VALEURS DUN 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++; }

96 PHP chap 5 - les tableaux96 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 doccurrences de cette valeur dans $tab Attention : ne sutilise quavec un tableau une dimension Exemple :

97 PHP chap 5 - les tableaux97 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++; }

98 PHP chap 5 - les tableaux98 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)

99 PHP chap 5 - les tableaux99 PHP – LES TABLEAUX 6.4 La fonction EACH() associée à la fonction LIST() La fonction list(variableList) permet daffecter à N variables la valeur des n premiers éléments dun 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 sapplique pas aux tableaux associatifs

100 PHP chap 5 - les tableaux100 PHP – LES TABLEAUX 6.5 La fonction FOREACH() Par rapport à la boucle FOR, FOREACH() ne doit pas connaître à lavance le nombre déléments dun 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 " ; }

101 PHP chap 5 - les tableaux101 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 " $cle " ; foreach($tab as $key=>$valeur) { echo " $key - $valeur" ; }

102 PHP chap 5 - les tableaux102 PHP – LES TABLEAUX 7.MANIPULER LES TABLEAUX 7.1 Extraire une partie dun tableau La fonction array_slice() retourne un tableau qui est un sous-ensemble dun 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

103 PHP chap 5 - les tableaux103 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 lindice 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

104 PHP chap 5 - les tableaux104 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, lunion des différents tableaux passés en paramètres Attention :Pour les tableaux associatifs, si des clés sont communes, seule lassociation 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

105 PHP chap 5 - les tableaux105 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 Lordre des paramètres fourni est important

106 PHP chap 5 - les tableaux106 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 lordre initial, mais on peut si nécessaire duplicier un tableau avant de le trier $tabbis = $tab La fonction $tab2 = array_reverse(tab) inverse lordre des valeurs dans un nouveau tableau

107 PHP chap 5 - les tableaux107 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 dune fonction écrite par lutilisateur 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 lordre défini Un nombre positif pour trier dans lordre inverse Zéro si les 2 éléments sont équivalents Exemple : trier dans lordre 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)

108 PHP chap 5 - les tableaux108 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é dinitialiser le générateur de nombres aléatoires avec srand(time()) avant dappeler shuffle()

109 PHP chap 5 - les tableaux109 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 lutilisateur 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 sest 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)

110 PHP chap 5 - les tableaux110 PHP – LES TABLEAUX 10.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)

111 PHP chap 5 - les tableaux111 PHP – LES TABLEAUX 11. APPLIQUER UNE FONCTION A UN TABLEAU On peut appliquer un traitement répétitif à chaque élément dun 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 lindice 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 dun tableau. Le ParamFacul représente la valeur par défaut qui sera retournée si $tab est vide.

112 PHP chap 5 - les tableaux112 PHP – LES TABLEAUX 12. LOBJET 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é)

113 PHP chap 5 - les tableaux113 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)

114 PHP chap 5 - les tableaux114 PHP – LES TABLEAUX-fonctions array_change_key_casearray_change_key_case Change la casse des clés d'un tableau array_chunkarray_chunk Sépare un tableau en tableaux de taille inférieure array_combinearray_combine Crée un tableau à partir de deux autres tableaux array_count_valuesarray_count_values Compte le nombre de valeurs d'un tableau array_diff_assocarray_diff_assoc Calcule la différence de deux tableaux, en prenant en compte les clés array_diff_keyarray_diff_key Calcule la différence de deux tableaux en utilisant les clés pour comparaison array_diff_uassocarray_diff_uassoc Calcule la différence entre deux tableaux associatifs, à l'aide d'une fonction de rappel array_diff_ukeyarray_diff_ukey Calcule la différence entre deux tableaux en utilisant une fonction de rappel sur les clés pour comparaison array_diffarray_diff Calcule la différence entre deux tableaux array_fill_keysarray_fill_keys Remplit un tableau avec des valeurs, en spécifiant les clés array_fillarray_fill Remplit un tableau avec une même valeur array_filterarray_filter Filtre les éléments d'un tableau grâce à une fonction utilisateur array_fliparray_flip Remplace les clés par les valeurs, et les valeurs par les clés array_intersect_assocarray_intersect_assoc Calcule l'intersection de deux tableaux avec des tests sur les index array_intersect_keyarray_intersect_key Calcule l'intersection de deux tableaux en utilisant les clés pour comparaison array_intersect_uassocarray_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_ukeyarray_intersect_ukey Calcule l'intersection de deux tableaux en utilisant une fonction de rappel sur les clés pour comparaison array_intersectarray_intersect Calcule l'intersection de tableaux array_key_existsarray_key_exists Vérifie si une clé existe dans un tableau

115 PHP chap 6 - les formulaires115 PHP- formulaires 1.Quest-ce quun formulaire ? 2.Transmission des variables A) transmission en modifiant ladresse B) transmission avec un formulaire 3. les attributs dun formulaire A) méthode : post ou get B) action C) input type D) textarea E) select 4.Exemple de formulaire 5.Récupération des données dun formulaire 6.Exemple de traitement des données dun formulaire 7.Gérer les boutons denvoi multiples

116 PHP chap 6 - les formulaires116 PHP- formulaires 1.Quest-ce quun formulaire ? On mettra ici les éléments de notre formulaire. Notez qu'il n'y a pour l'instant pas de PHP. serveur visiteur formulaire formulaire présentable créé en HTML Gestion des infos fournies par le formulaire au script côté serveur en PHP

117 PHP chap 6 - les formulaires117 PHP- formulaires 2.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 ? A)Transmettre en modifiant ladresse Cliquez ici pour accéder aux infos ! Balise permet de faire un lien dune page à lautre ? nom-var = valeur Cela va créer une variable particulière : $_GET['jour'] qui aura pour valeur 27 !

118 PHP chap 6 - les formulaires118 PHP- formulaires 2.Transmission des variables A)Transmettre en modifiant ladresse Cliquez ici pour accéder aux infos ! 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.

119 PHP chap 6 - les formulaires119 PHP- formulaires 2.Transmission des variables A)Transmettre en modifiant ladresse (exemple complet) Notez que cette page ne contient que du HTML. Voici 3 liens vers la page cible.php, avec des variables aux valeurs différentes : Lien vers cible.php?nom=Dupont&prenom=Michel Lien vers cible.php?nom=Guichard&prenom=Patrick Lien vers cible.php?nom=Surret&prenom=Coralie Bonjour ! Votre nom est, et votre prénom est. Faites un autre essai, cliquez ici pour revenir à appel.php appel.php cible.php $_GET et $_POST sont des tableaux associatifs qui permettent de récupérer les valeurs des variables dune autre page

120 PHP chap 6 - les formulaires120 PHP- formulaires 2.Transmission des variables B)Transmettre avec un formulaire Cette page, elle aussi, ne contient que du HTML. Veuillez taper votre prénom : Bonjour ! Je sais comment tu t'appelles, hé hé. Tu t'appelles ! Si tu veux changer de prénom, clique ici pour revenir à appel.php appel.php cible.php

121 PHP chap 6 - les formulaires121 PHP- formulaires 3.Les attributs dun 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

122 PHP chap 6 - les formulaires122 PHP- formulaires 3.Les attributs dun 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.

123 PHP chap 6 - les formulaires123 PHP- formulaires 3.Les attributs dun formulaire C)Input type = " " 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'].

124 PHP chap 6 - les formulaires124 PHP- formulaires 3.Les attributs dun formulaire C)Input type = " " 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". Nom de la variable à transmettre Libellé affiché

125 PHP chap 6 - les formulaires125 PHP- formulaires 3.Les attributs dun formulaire C)Input type = " " ma case on peut créer un groupe de cases à cocher. Il est alors possible de cocher plusieurs cases simultanément. Frites Steak Epinards Huitres Valeur transmise si la case est cochée On récupère les valeurs dans un tableau

126 PHP chap 6 - les formulaires126 PHP- formulaires 3.Les attributs dun formulaire C)Input type = " " Aimez-vous les frites ? Oui 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.

127 PHP chap 6 - les formulaires127 PHP- formulaires 3.Les attributs dun formulaire C)Input type = " " - Dans la page cible, une variable $_POST['pseudo'] sera créée (correspondant à name), et elle aura la valeur "Mateo21" (correspondant à value) -Ce bouton déclenche lenvoi des données de tout le formulaire vers le serveur. -Le contenu de lattribut value constitue le texte visible du bouton dans le formulaire. Envoi des données Un bouton

128 PHP chap 6 - les formulaires128 PHP- formulaires 3.Les attributs dun formulaire C)Input type = " " -Si lon 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. Envoi des données plusieurs boutons

129 PHP chap 6 - les formulaires129 PHP- formulaires 3.Les attributs dun formulaire C)Input type = " " -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

130 PHP chap 6 - les formulaires130 PHP- formulaires 3.Les attributs dun formulaire D)textarea name= " " Votre message ici. Message par défaut (optionnel) Définit la taille de la zone de saisie.

131 PHP chap 6 - les formulaires131 PHP- formulaires 3.Les attributs dun formulaire E)Select option Choix 1 Choix 2 Choix 3 Choix 4 - 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 par défaut (optionnel) choix unique

132 PHP chap 6 - les formulaires132 PHP- formulaires 3.Les attributs dun formulaire E)Select option vos couleurs préférées ? rouge vert bleu jaune - dans les listes de sélection à choix multiple, lutilisateur doit maintenir enfoncée la touche CTRL pour faire plusieurs choix. choix multiple

133 PHP chap 6 - les formulaires133 PHP- formulaires 4.Exemple de formulaire nom mot passe content ? français anglais néerlandais

134 PHP chap 6 - les formulaires134 PHP- formulaires 4.Exemple de formulaire Homme Femme votre signe astro ? poisson sagittaire taureau vierge

135 PHP chap 6 - les formulaires135 PHP- formulaires 4.Exemple de formulaire vos couleurs préférées ? rouge vert bleu jaune

136 PHP chap 6 - les formulaires136 PHP- formulaires 5.Récupération des données du formulaire Que se passe-t-il lorsque lutilisateur clique sur le bouton denvoi ? Une requête http est envoyée au serveur à destination du script désigné dans lattribut action de. 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 nenvisage que lutilisation de la méthode « post ». Dans lentête HTTP avec la méthode POST Dans lURL avec la méthode GET

137 PHP chap 6 - les formulaires137 PHP- formulaires 5.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 ! A)Récupération des valeurs uniques : texte, bouton radio, liste de sélection B)Récupération de valeurs multiples : groupe de cases à cocher

138 PHP chap 6 - les formulaires138 PHP- formulaires 5.Récupération des données du formulaire A)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 lattribut « 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 loccurrence à 2 dimensions. $_POST [ " name " ] [ i ] $_POST [ " name " ]

139 PHP chap 6 - les formulaires139 PHP- formulaires 6. Exemple de traitement des données du formulaire

140 PHP chap 6 - les formulaires140 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"]." "; //liste déroulante à choix unique echo " votre signe astro est : ".$_POST["signe"]." "; // // trt des valeurs multiples // // trt cases à cocher multiples echo "vous parlez : " ; foreach ($lang as $valeur) { echo " $valeur "; }

141 PHP chap 6 - les formulaires141 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 " $valeur "; } echo " clique ici pour le retour "; ?>

142 PHP chap 6 - les formulaires142 PHP- formulaires 7.Gérer les boutons denvoi multiples nombre1 nombre2

143 PHP chap 6 - les formulaires143 PHP- formulaires 7.Gérer les boutons denvoi multiples

144 PHP chap 7 - les fonctions144 PHP- fonctions 1.Les fonctions natives de PHP 2.Créer ses propres fonctions 2.1 définition, appel de fonction avec retour dun résultat 2.2définition, appel de fonction sans retour de valeur 2.3définition, appel de fonction avec retour de plusieurs valeurs 2.4passage des arguments par référence 3.Portée des variables 3.1variables locales globales 3.2variables super globales

145 PHP chap 7 - les fonctions145 PHP- fonctions 1.Les fonctions natives de PHP Il existe des -fonctions natives écrites en langage C -Modules dextension quil est possible dassocier à la distribution standard Avant dutiliser un module, il convient de vérifier quil 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 dextension installés sur le serveur Vérifie la disponibilité dune fonction connue Renvoie TRUE si la fonction est utilisable FALSE sinon

146 PHP chap 7 - les fonctions146 PHP- fonctions 1.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...

147 PHP chap 7 - les fonctions147 PHP- fonctions 2.Créer ses propres fonctions Ces fonctions personnalisées peuvent être écrites dans le script lui-même ou dans un script séparé quil suffira dinclure dans de nouveaux scripts à laide de linstruction include () ou require () 2.1 définition, appel de fonction avec retour dun résultat Exemple 1 : calcul du volume dun cylindre La formule de calcul est : rayon * rayon * 3.14 * hauteur * (1/3)

148 PHP chap 7 - les fonctions148 PHP- fonctions 2.Créer ses propres fonctions 2.2définition, appel de fonction sans retour de valeur Exemple 2 : fonction de lecture dun tableau $valeur) { echo " $cle $valeur "; } echo " "; }

149 PHP chap 7 - les fonctions149 PHP- fonctions 2.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"); ?>

150 PHP chap 7 - les fonctions150 PHP- fonctions 2.Créer ses propres fonctions 2.3définition, appel de fonction avec retour de plusieurs valeurs Via lutilisation dun tableau (array), une fonction est capable de renvoyer plusieurs valeurs. Exemple 3 : fonction de calcul (somme et différence)

151 PHP chap 7 - les fonctions151 PHP- fonctions 2.Créer ses propres fonctions 2.3dé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

152 PHP chap 7 - les fonctions152 PHP- fonctions 2.Créer ses propres fonctions 2.4passage 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 largument de « & » dans la définition de la fonction. Exemple 5 : fonction de traitement dun tableau Le premier argument est passé par référence, le second par valeur.

153 PHP chap 7 - les fonctions153 PHP- fonctions 2.Créer ses propres fonctions Exemple 5 : fonction de traitement dun tableau $val) $tab[$cle]*=$coeff; } // définition du tableau $tabnum = range(1,7); echo "tableau avant : ", print_r($tabnum)," "; // appel de la fonction prodTab($tabnum,3); echo "tableau après : ",print_r($tabnum)," "; ?>

154 PHP chap 7 - les fonctions154 PHP- fonctions 2.Créer ses propres fonctions Exemple 6: fonction de calcul

155 PHP chap 7 - les fonctions155 PHP- fonctions 3.Portée des variables 3.1variables locales et globales -Toutes les variables utilisées dans la déclaration dune fonction sont « locales » au bloc de définition de la fonction.. -Une variable définie en dehors dune fonction est « globale » et accessible partout dans le script qui la créée. - Le script affiche une page blanche. -La variable $message utilisée dans la fonction a une portée locale et na pas été initialisée. -- la fonction ne fait pas réf à la var $message déclarée globalement.

156 PHP chap 7 - les fonctions156 PHP- fonctions 3.Portée des variables 3.1variables 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 ».

157 PHP chap 7 - les fonctions157 PHP- fonctions 3.Portée des variables 3.1variables locales et globales -1) en déclarant « globale » la variable dans la fonction avec le mot-clé « global »

158 PHP chap 7 - les fonctions158 PHP- fonctions 3.Portée des variables 3.1variables 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 « $ »

159 PHP chap 7 - les fonctions159 PHP- fonctions 3.Portée des variables 3.2variables super globales PHP fournit un ensemble de tableaux prédéfinis qui contiennent les variables serveur ($_SERVER), les variables denvironnement et dentré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.

160 PHP chap 8 - les dates160 PHP- dates 1.La fonction date() 2.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 3.La fonction checkdate() 4.La date en français

161 PHP chap 8 - les dates161 PHP- dates 1.La fonction date() La fonction date permet dafficher, le jour, la date et lheure sur les pages WEB, quelles soient statiques ou créées dynamiquement. 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

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

163 PHP chap 8 - les dates163 PHP- dates 1.La fonction date() 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. date a créé une chaîne de caractères qui contient jour/mois/année.

164 PHP chap 8 - les dates164 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 dun système dans lequel lajout dune seconde peut amener à changer dheure, de jour,….et même de millénaire. Pour pallier ces difficultés, une date arbitraire a été définie, correspondant au 1 er 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éé. Cette valeur nest pas affichée au visiteur du site. Elle sert dintermédiaire à dautres fonctions pour calculer des durées, des dates passées ou futures.

165 PHP chap 8 - les dates165 PHP- dates 2.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. 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...

166 PHP chap 8 - les dates166 PHP- dates 2.Le timestamp 2.3 la fonction mktime() et le timestamp Utilité : calcul de la durée entre 2 dates Je veux le timestamp du 5 Février 1998 à 13h 45min 26s

167 PHP chap 8 - les dates167 PHP- dates 2.Le timestamp 2.4 limites Linconvé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 nest 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.

168 PHP chap 8 - les dates168 PHP- dates 3.La fonction checkdate() //e8_4.php Entrez votre date de naissance JJ/MM/AAAA 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 lordre moi, jour, année.

169 PHP chap 8 - les dates169 PHP- dates 4.La date en français " 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')." "; ?> Il serait préférable de définir une fonction qui réalise ce traitement - 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)

170 PHP chap 11 - les fichiers170 PHP – FICHIERS. 1.Création dun fichier // teste lexistence dun 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 dun fichier $id_file=fopen($nomfich,$mode,[$Boolpath]) $nomfich = monfich.txt ou..\chemin\nomfich ou $mode = mode douverture 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

171 PHP chap 11 - les fichiers171 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 à louverture $id_file = FALSE fichier temporaire NB Pour créer un fichier temporaire (pendant la durée de la session en cours) on utilisera : $id_file = tmpfile() 3. Fermeture dun fichier $Boolresu = fclose($id_file)

172 PHP chap 11 - les fichiers172 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 !!! Ne pas oublierLOCK_UN Enlève les verrous précédemment mis !!! Ne pas oublier $boolresu retourne FALSE si le verrou demandé na pu être obtenu 5.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.

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

174 PHP chap 11 - les fichiers174 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() Lecture dun 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 denregistrement

175 PHP chap 11 - les fichiers175 PHP – FICHIERS. 7.3 Lecture dun 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 dune partie de fichier On peut faire débuter la lecture à nimporte quel endroit du fichier. $boolval fseek($id_file, N) // positionne le pointeur sur le Nème byte N = Nbre doctects à partir du début du fichier à partir doù 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

176 PHP chap 11 - les fichiers176 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, sarrête à la fin du fichier ou à la rencontre de /n (fin denregistrement) 7.6 Lecture de la totalité dun 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 laurait 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

177 PHP chap 11 - les fichiers177 PHP – FICHIERS. On peut également utiliser : $tableau = file($nomdufichier) Lit tout le fichier et retourne un tableau dont chaque élément est constitué dune 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 laurait fait echo ) NB Il ne faut pas fermer le fichier, il lest automatiquement à la fin de fpassthru()

178 PHP chap 11 - les fichiers178 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 dun 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 lURL complet

179 PHP chap les cookies179 PHP – COOKIES. 1.Définition Petits fichiers pouvant être écrits par un script sur lordinateur du visiteur dun 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 nest accessible que par le site qui la écrit Ecriture des cookies Attention : aucun contenu HTML ne peut avoir été envoyé avant lécriture dun cookie

180 PHP chap les cookies180 PHP – COOKIES. $boolean = setcookie($nomcookie, $valeur, $datefin,$chemin,$domaine,$securite); $nomcookie : nom que lon donne au cookie (chaîne) $valeur : valeur que lon donne au cookue (chaîne) $datefin : entier (timestamp) servant à déterminer la date dexpitation du cookie. Si absent -> valable uniquement pendant la session exemple : $datefin = time()+86400; // valable 24 heures $chemin : chemin daccè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 ");

181 PHP chap les cookies181 PHP – COOKIES. 3. Supprimer un cookie Il suffit dappeler setcookie($nomcookie) sans donner de valeur 4. Rendre un cookie innaccessible Il suffit de lui donner une date dexpirantion 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 dun tableau associatif {setcookie("client[$cle]", $valeur,time()+86400, );}

182 PHP chap les cookies182 PHP – COOKIES. 6. Lire un cookie Les cookies sont accessibles via la variable superglobale $_COOKIE Il sagit dun 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 ; }

183 PHP chap 12-2 les sessions183 PHP – SESSIONS. 1.Définition Mécanisme qui permet de conserver des informations provenant dune page web, pour être utilisées dans dautres pages du site par un même visiteur. Aucun autre visiteur na 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(); sessionIDChaque utilisateur reçoit un sessionID (SID) qui sera transmis dune page à lautre de deux manières différentes : Soit dans un cookie –Soit dans un cookie –Soit en étant ajouté à lURL 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;

184 PHP chap 12-2 les sessions184 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 sagit dune manière simple de transmettre le sessionID (SID)dune page à lautre 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 lappel 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

185 PHP chap 12-2 les sessions185 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 sessionID Il sagit dune manière simple de transmettre le sessionID dune page à lautre 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 lappel 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é !!!)

186 PHP chap 12-2 les sessions186 PHP – SESSIONS. 5. Session sans cookies Le nom de la session par défaut est PHPSESSID et lidentifiant 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 lurl de la manière suivante : > vers page2 6.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 lidentifiant 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

187 PHP chap 12-2 les sessions187 PHP – SESSIONS. 7.Afficher toutes les variables de session $value) { // and print out the values echo 'The value of $_SESSION['."'".$key."'".'] is '."'".$value."'".' '; } ?>

188 PHP chap 12-2 les sessions188 PHP – SESSIONS. 8. Comment sont gérées les variables de session

189 PHP chap les s189 PHP – . 1.Fonction de base denvoi dun 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 nest 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

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

191 PHP chap les s191 PHP – Options de mail (4 ème paramètre) - MIME Les types MIME (Multipurpose Internet Mail Extension) permettent dinsérer des images, sons etc … dans les mails. MIME-Version: 1.0 = version MIME utilisée (doit être le 1 er ) 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


Télécharger ppt "PHP- Table des matières 1.Introduction 2.Les données 3.Les instructions de contrôle 4.Les chaînes de caractères 5.Les tableaux 6.Les formulaires 7.Les."

Présentations similaires


Annonces Google