Post

CM09 PHP

Télécharger le CM09 PHP en pdf

Pages : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106

Page 1 : Programmation WebLe Langage PHPMussab ZneikaCY-TechDéveloppement Web – INFO4

page 1

Page 2 : 2Introduction à PHP www.php.net

page 2

Page 3 : 3Introduction à PHP PHPestunlangagedescriptcôtéserveur.LesscriptsPHPsontexécutéssurleserveur.PHPsupportedenombreusesbasesdedonnéesMySQL,Informix,Oracle,Sybase,Solid,PostgreSQL,GenericODBC,etc..PHPestunlogicielopensource.PHPestgratuitàtéléchargeretàutiliser.

page 3

Page 4 : 4Introduction à PHP PHPfonctionnesurdifférentesplateformesWindows, Linux, Unix, etc..PHP est compatible avec presque tous les serveursutilisés aujourd'hui Apache, IIS, etc..PHP est téléchargeable GRATUITEMENT à partir dela ressource PHP officielle : www.php.net.PHPestfacileàapprendreetfonctionneefficacement côté serveur.

page 4

Page 5 : 5Introduction à PHP Le code PHP est exécuté sur le serveur, générant duHTML qui est ensuite envoyé au client.Le client recevrait les résultats de l'exécution de cescript, mais ne saurait pas quel était le code sous-jacent.

page 5

Page 6 : 6Introduction à PHP 6ClientBase de données MySQLServeurScript PHPinternetrequêteréponseDocument HtmlExtraction des donnéesRéception des donnéesConstitution du document htmlPréparation de la réponseLancement de l’interpretteur php

page 6

Page 7 : 7Introduction à PHP Sous Windows, vous pouvez télécharger et installer WAMP. Avec uneseule installation, vous obtenez un serveur Web Apache, un serveur debase de données et php.http://www.wampserver.comSur Mac, vous pouvez télécharger et installer MAMP.http://www.mamp.info/en/index.htmlSur Linux.https://doc.ubuntu-fr.org/phpAu terminal taper php -S localhost:8080 pour lancer le script phpAu navigateur taper localhost:8080/leNomDeLaPage.phpPar exemple : localhost:8080/bonjour.php

page 7

Page 8 : 8Intégration d’un script PHP dans une pageLes pages web sont au format html.Les pages web dynamiques générées avec PHP sontau format php et doit enregistrer avec l'extension .phpLe code source php est directement insérer dans lefichier html grâce au conteneur de la norme XML :?php … ?Autres syntaxes d’intégration :? … ?script language=‘’php’’ … /script …

page 8

Page 9 : 9Intégration d’un script PHP dans une pageExemple de script, code source côté serveur :htmlbodyh1Mon premier script/h1?php echo ‘’Bonjour le monde \n’’; ?/body/htmlRésultat affiché par le navigateur :Code source côté client

page 9

Page 10 : 10Affichage de texte echo : écriture le paramètre dans le navigateurhtmlheadtitle?phpecho “title”;?/title/headbody?phpecho “pBonjour le monde !/p”;?/body/htmlprint : écriture dans le navigateurprintfformat, arg1, arg2 : écriture formatée commeen C, i.e. la chaîne de caractère est constante et contientle format d’affichage des variables passées en argument

page 10

Page 11 : 11CommentairesEn PHP, on utilise // pour faire un commentaire sur uneseule ligne ou / et / pour faire un gros bloc decommentaire.Exemple :?php// commentaire de fin de ligne/ commentaire sur plusieurs lignes /… commentaire de fin de ligne comme en Shell?

page 11

Page 12 : 12VariablesLes variables sont utilisées pour stocker des valeurs,comme des chaînes de texte, des nombres ou destableaux.Le typage des variables est implicite en php. Il n’estdonc pas nécessaire de déclarer leur type au préalableni même de les initialiser avant leur utilisation.Toutes les variables en PHP commencent par unsymbole .La bonne façon de déclarer une variable en PHP :

page 12

Page 13 : 13VariablesUn nom de variable doit commencer par une lettre ou un trait de soulignement ""-- pas un nombre.Un nom de variable ne peut contenir que des caractères alphanumériques, destraits de soulignement a-z, A-Z, 0-9 et .Un nom de variable ne doit pas contenir d'espaces.Les variables peuvent être de type entier integer, réel double, chaîne decaractères string, tableau array, objet object, booléen boolean.Il est possible de convertir une variable en un type primitif grâce au cast commeen C.Exemple :str = ’’12’’;// str vaut la chaîne ‘’12’’nbr = intstr;// nbr vaut le nombre 12Le cast est une conversion de type. L’action de caster consiste en convertir unevariable d’un type à un autre.

page 13

Page 14 : 14Gestion des variablesQuelques fonctions :emptyvar : renvoie vrai si la variable est videissetvar : renvoie vrai si la variable existeunsetvar : détruit une variablegettypevar : retourne le type de la variablesettypevar, ’’type’’ : convertit la variable en type type castislong,isdouble,isstring,isarray,isobject,isbool, isfloat, isnumeric, isinteger, isint…intvalval,base:retournelavaleurnumériqueentièreéquivalente d'une variable.Strvalval: retourne la valeur d'une variable, au format chaîne.Boolvaval retourne la valeur booléenne d'une variable.floatval val:Convertit une chaîne en nombre à virgule flottanteet beaucoup plus: : https://www.php.net/manual/fr/ref.var.php

page 14

Page 15 : 15Gestion des variablesExemple:var = 5.55;var2 = strvalvar; // '5.55’var3 = intvalvar; // 5var4 = boolvalvar; // truevar5 = floatvalvar;// 5.55echo gettypevar; // doublesettype var, "integer" ;echo var; // 5echo gettypevar;// integer

page 15

Page 16 : 16Concaténation PHP L'opérateur de concaténation . est utilisé pour assemblerdeux valeurs de chaîne.Pour concaténer deux variables de chaîne ensemble,utilisez l'opérateur de concaténation :?phpvar1 = "Mussab";var2 = "Zneika";Prenomnom=var1." ".var2;echo Prenomnom; // Mussab Zneika?

page 16

Page 17 : 17Les opérateurs Les opérateurs Mode +, -, , /, Actes numériques , &&, !Actes logiques ==, !=, , , =, =Comparaison ++, --Augmentation, diminution .concaténation=, +=, -=, =, /=, =Affectation

page 17

Page 18 : 18Les opérateurs codeRésultat 3 + 582 - 9-71 / 20.55 735102 52true falsetrue!truefalsetrue && truetrue3 5true3 != 3false“Hello “ . ‘, world!’Hello, world!

page 18

Page 19 : 19Structures de contrôle: if…else Trèssouvent,lorsquevousécrivezducode,voussouhaitez effectuer différentes actions pour différentesdécisions.Vous pouvez utiliser des instructions conditionnelles dansvotre code pour ce faire.En PHP, nous avons les instructions conditionnellessuivantes:if : exécuter du code uniquement si la condition est vraie if...else: exécuter un code si une condition est vraie et un autre code si la condition est fausse if...elseif....else: utilisez cette instruction à envoyer pour élire l'un des plusieurs blocs de code à exécuter .

page 19

Page 20 : 20Structures de contrôle: if…else Exemple1 Cet exemple affichera pas passéa = "10";if a 10 echo "passes";else echo "échoué" ;Cet exemple affichera échoué

page 20

Page 21 : 21Structures de contrôle: if…else Exemple2if0 echo 1;// fauxif"" echo 2; // fauxif"0" echo 3; // fauxif"00" echo 4;if'0' echo 5; // fauxif'00' echo 6;if" " echo 7;Cet exemple affiche 467. Donc l’espace ou la chaîne ‘’00’’ ne sont pas considérés FALSE.

page 21

Page 22 : 22Structures de contrôle: switchUtilisez l'instruction switch pour sélectionner l'un desnombreux blocs de code à exécuter.switch var case valeur1:traitement1break;case valeur2:traitement2 break;...default:….

page 22

Page 23 : 23Structures de contrôle: switchExemplea=10;switch a case 5:echo “a is 5”;break;case 10:echo “a is 10”;break;case 15:echo “a is 15”;break;default:echo “a is neither 5, nor 10, nor 15”;Cet exemple affichera a is 10

page 23

Page 24 : 24Structures de contrôle: bouclefor, while, do,whileStructures de boucle même syntaxe qu’en langage C :• for … ; … ; … •…• • while … •…• • do •…• while … ;

page 24

Page 25 : 25Structures de contrôle : breakSyntaxe comme en C, C++, Java… Peut apparaître dans l'un des contrôles suivants :for, while, do… while, switchIl arrête le flux et continue immédiatement aprèsPlus de répétitions après break?php fori=0;i6;i++ ifi==4 break; echo i."br"; echo "i after the for ". i."br";?phpLe Résultat

page 25

Page 26 : 26Structures de contrôle : continueSyntaxe comme en C, C++, Java… Peut apparaître dans l'un des contrôles suivants :for, while, do… whileIl arrête le flux et continue de vérifier la condition.D'autres répétitions peuvent se produire après continue.?php fori=0;i6;i++ ifi==4 continue; echo i."br"; echo "i after the for ". i."br";?phpLe Résultat

page 26

Page 27 : 27FonctionsComme tout langage de programmation, php permet l’écriture de fonctions. Les fonctions peuvent prendre des arguments dont il n’est pas besoin de spécifier le type. Elles peuvent de façon optionnelle retourner une valeur.L’appel à une fonction peut ne pas respecter son prototypage nombre de paramètres. Les identificateurs de fonctions sont insensibles à la casse.Exemple :function mafonctiontoto toto += 15;echo ‘’Salut !’’;return toto+10;nbr = MaFonction15.1;/ retourne 15.1+15+10=40.1, les majuscules n’ont pas d’importance /

page 27

Page 28 : 28FonctionsExemple 1: Fonction de calcul de la moyenne de deux nombres function avg a, b c = a + b;return c / 2;echo ‘The average of 3, 5: ‘ . avg 3, 5 ;echo “\n”;echo ‘The average of 1, 9: ‘ . avg 1, 9 ;

page 28

Page 29 : 29FonctionsExemple 2: Fonction pour tester si le nombre est premier ou non ..function isprime a for i = 2; i a; ++i if a i == 0 return false;return true;if isprime 5 echo “5 is a prime number.”;

page 29

Page 30 : 30Fonctionsfunction makeCoffee type = "frappe", milk = true str = "Making a cup Coffe of type ".type;if milk str = str." with milk";str .= ".\n";return str;echo makeCoffee "Arabic" ;Tous les arguments sont optionnels On peut donner une valeur par défaut aux arguments lors de la déclarationde la fonction.Cet exemple affichera Making a cup Coffe of type Arabic with milk.

page 30

Page 31 : 31Fonctionsfunction makeCoffee type = "frappe", milk str = "Making a cup Coffe of type ".type;if milk str = str." with milk";str .= ".\n";return str;echo makeCoffee "Arabic" ;Valeurs par défaut uniquement pour les derniers argumentsCet exemple affichera rien.

page 31

Page 32 : 32Fonctions: la portée des variables On peut modifier la portée des variables locales à une fonction.globalpermetde travaillersur une variable deportéeglobaleauprogramme.Example 1:a = 5;echo a."br";function tataa=10;echo a."br";tata;echo a;Example 2:a = 5;echo a."br";function tataglobal a;a=10;echo a."br";tata;echo a;

page 32

Page 33 : 33Fonctions: la portée des variables static permet de conserver la valeur d’une variable locale à une fonctionExample :function tatastatic a=0;a=a+5;echo a."br";tata;//5tata;//10tata;//15

page 33

Page 34 : 34Fonctions:Mathématiques • Quelques fonctions:• absx : valeur absolue• ceilx : arrondi supérieur• floorx : arrondi inférieur• powx,y : x exposant y• roundx,i : arrondi de x à la ième décimale• maxa, b, c … : retourne l’argument de valeur maximum• pi : retourne la valeur de Pi• cos, sin, tan, exp, log, min, pi, sqrt…• randx,y : valeur entière aléatoire entre 0 et RANDMAX si x et y ne sont pas définis, entre x et RANDMAX si seul x est défini, entre x et y si ces deux paramètres sont définis.• srand : initialisation du générateur aléatoire• getrandmax : retourne la valeur du plus grand entier pouvant être généré

page 34

Page 35 : 35Fonctions:Mathématiques Exemple 1?phpvar=35.78910897;x=10; y=20; z=10;echo floor1.9 ."br"; // 1echo ceil1.9 ."br"; // 2echo ceil1.3 ."br"; // 2echo round1.9."br";// 2echo floorvar."br";//35echo ceilvar ."br"; // 36echo roundvar,1."br";//35.8echo roundvar,2."br";//35.79echo maxx,y,z."br"; //20echo minx,y,z."br"; //10echo absx."br"; //10echo abs-x."br"; //10?php

page 35

Page 36 : 36Fonctions:Mathématiques Exemple 2?phpecho rand . "br";Echo rand10,50."br";echo getrandmax; //2147483647?php

page 36

Page 37 : 37Fonctions:String • Quelques fonctions:• strlenstr : retourne le nombre de caractères d’une chaîne• strtolowerstr : conversion en minuscules• strtoupperstr : conversion en majuscules• trimstr : suppression des espaces de début et de fin de chaîne.• strrevstr: Inverser une chaîne • substrstr,i,j : retourne une sous chaîne de str de taille j et débutant à la position i• strnatcmpstr1,str2 : comparaison de 2 chaînes • addslashesstr : déspécialise les caractères spéciaux ‘, ‘’, \• ordchar : retourne la valeur ASCII du caractère char.• strreplacestr1,str2,str3,count: remplacer str 1 par str2 dans str3• explodeséparateur, str: retourne un tableau de chaînes de caractères, chacune d'elle étant une sous-chaîne du paramètre string extraite en utilisant le séparateur séparateur.• Plus : https://www.php.net/manual/fr/ref.strings.php

page 37

Page 38 : 38Fonctions:String Exemple 1?phpnom="Mussab Zneika";echo strlennom ."br"; //13nomupper=strtouppernom;echo nom."br"; //Mussab Zneikaecho nomupper."br";//MUSSAB ZNEIKAnomlow=strtolowernom;echo nom."br"; //Mussab Zneikaecho nomlow."br";//mussab zneikaifstrnatcmpnomupper,nomlow//yes echo "yes"; ifnomupper==nomlow//No echo "yes"; else echo "No"; ?php

page 38

Page 39 : 39Fonctions : String Exemple 2?phpcount=0;echo strreplace"world","Mussab","Hello world world!",count ."br";//Hello Mussab Mussab!echo count ."br";//2echo strrepeat"cergy ",5."br"; // cergy cergy cergy cergy cergy printr explode" ","CY Cergy Paris Université en chiffres";//Array 0 = CY 1 = Cergy 2 = Paris 3 = Université 4 = en 5 = chiffres echo ord'A' ."br"; // 65echo ord'a' ."br"; // 97echo chr65."br";// A?php

page 39

Page 40 : 40Exercise 1Ecrivez une fonction PHP qui vérifie si une chaîne descaractèrespasséenecontientquelescaractèresalphabétiques est palindrome ou non ?Remarque : Un palindrome est un mot, une phrase ou uneséquence qui se lit de la même manière que l'avant, parexemple, radar , rotor ou stats .Fonctions : String

page 40

Page 41 : 41Exercise 1: solutionfunction palindromestr1str1=strreplace" ","",str1;str1=strtolowerstr1;str2=strrevstr1;ifstr1==str2echo str1." est un palindromebr";else echo str1.' n\'est pas un palindromebr’;palindrome"radar"; // radar est un palindromepalindrome"a Laval elle lavala"; // alavalellelavala est un palindromePHPFonctions : String

page 41

Page 42 : 42Fonctions:header Il est possible d’envoyer des entêtes particuliers du protocole HTTPgrâce à la fonction header.Syntaxe : headerstr;Les entêtes doivent obligatoirement être envoyées avant l’affichagede tout caractère dans la page en cours. Car l’affichage forcel’envoi des entêtes de base.headerssent : Retourne TRUE si les entêtes ont déjà étéenvoyées, FALSE sinon.Exemple:• header"Location: http://www.example.com/"; / Redirectiondu navigateur /• header 'Content-type: text/html; charset=utf-8‘ =metahttp-equiv=“Content-type”content=“text/html; charset=utf-8”/

page 42

Page 43 : 43Tableaux Une variable tableau est de type array. Un tableau accepte des éléments de tout type. Les éléments d’un tableau peuvent être de types différents et sont séparés d’une virgule. Un tableau peut être initialisé avec la syntaxe array.• Exemple :• tabcolors = array‘red’, ’yellow’, ’blue’, ‘white’;Mais il peut aussi être initialisé au fur et à mesure.• Exemples :• prenoms = "Mussab"; villes0 = "Paris";• prenoms = "Wassim"; villes1 = "Cergy";• prenoms = "Marc"; villes2 = "Madrid";Redyellowbluewhite0123Valeursindex

page 43

Page 44 : 44Tableaux L’appel d’un élément du tableau se fait à partir de son indice dont l’origine est zéro comme en C.Exemple :toto = array 0 = 1, 1 = ‘tata’ ;echo toto 0 ; // 1echo toto 1 ; // tatafoo = array 0 = 1, ‘bar’ ;echo foo 0 ; // 1echo foo 1 ; // bar

page 44

Page 45 : 45Tableaux Parcours d’un tableau. : For, while, do.. while• tab = array"Mussab", "Marc", "Juilan";Exemple 1 :i=0;whilei counttab // count retourne le nombre d’élémentsecho tabi."br";i++;Exemple 2 :fori=0;icounttab; i++ echo tabi."br";Parcours d’un tableau. : foreach• tab = array"Mussab", "Marc", "Juilan";Exemple :foreachtab as elem echo elem. "br";

page 45

Page 46 : 46Tableaux Quelques fonctions:counttab, sizeof : retournent le nombre d’éléments du tableauinarrayvar,tab : dit si la valeur de var existe dans le tableau tablistvar1,var2… : transforme une liste de variables en tableaurangei,j : retourne un tableau contenant un intervalle de valeursshuffletab : mélange les éléments d’un tableausorttab : trie alphanumérique les éléments du tableaursorttab : trie alphanumérique inverse les éléments du tableauimplodestr,tab, join : retournent une chaîne de caractères contenant les éléments du tableau tab joints par la chaîne de jointure strexplodedelim,str : retourne un tableau dont les éléments résultent du hachage de la chaîne str par le délimiteur delimarraymergetab1,tab2,tab3… : concatène les tableaux passés en argumentsarrayrandtab : retourne un élément du tableau au hasard

page 46

Page 47 : 47Tableaux Quelques fonctions:counttab, sizeof : retournent le nombre d’éléments du tableauinarrayvar,tab : dit si la valeur de var existe dans le tableau tablistvar1,var2… : transforme une liste de variables en tableaurangei,j : retourne un tableau contenant un intervalle de valeursshuffletab : mélange les éléments d’un tableausorttab : trie alphanumérique les éléments du tableaursorttab : trie alphanumérique inverse les éléments du tableauimplodestr,tab, join : retournent une chaîne de caractères contenant les éléments du tableau tab joints par la chaîne de jointure strexplodedelim,str : retourne un tableau dont les éléments résultent du hachage de la chaîne str par le délimiteur delimarraymergetab1,tab2,tab3… : concatène les tableaux passés en arguments

page 47

Page 48 : 48Tableaux Quelques fonctions:arraypushtab, e1,e1.. : ajoute les éléments e1, e2, ... a la fin du tableau.arraypoptab: retourne le dernier élément du tableau et le supprimer du tableau.arrayshiftab: dépile un élément au début d'un tableau.arrayunshifttab, e1,e1.. empile un ou plusieurs éléments e1, e2,.. au début d'un tableau.arrayfliptab: remplace les clés par les valeurs, et les valeurs par les clés.arrayreversetab, bool: Inverse l'ordre des éléments d'un tableau.slicetab ,begin,length,bool: retourner un nouveau tableau constitue d'une sous-partie d'un tableau existant.arraysplicetab1, begin,length,tab:Supprime des éléments d'un tableau et remplacez-le par de nouveaux éléments :

page 48

Page 49 : 49Example 1Ajouter des éléments dans un tableau push,unshift:Tableaux?phpprenoms=array'Mussab', 'Marc','julian','Naya’;//On ajoute les valeurs Sarra et Francia en fin de tableauarraypushprenoms, 'Sarra', ' Francia'; //On ajoute deux éléments en début de tableau arrayunshiftprenoms,'Flora', 'claire’;//On affiche les valeurs de notre tableau p ="";fori = 0; i countprenoms; i++ p .= 'Prénom n' . i . ' : ' . prenomsi .'br'; //On affiche la taille du tableau et les prénomsecho 'Le tableau contient ' .countprenoms.' éléments : br' .p;?PHPLe Résultat

page 49

Page 50 : 50Example 2Supprimer des éléments dans un tableaupop,shift:Tableaux?phpprenoms=array'Mussab','Marc','julian','Naya’;//On supprime le premier prénom du tableausupprp = arrayshiftprenoms;// On supprime le dernière prénom du tableau supprd = arraypopprenoms;//On récupère les valeurs de notre tableaup ="";fori = 0; i countprenoms; i++ p .='Prénom n' . i+1 . ' : ' . prenomsi .'br'; //On affiche la taille du tableau et les prénoms echo 'Nouveau tableau :br'. p. 'br Prénom supprimé : br'.supprp . 'br'.supprd ;?PHPLe Résultat

page 50

Page 51 : 51Example 3Ajouter des éléments choisis dans un tableauspliceTableaux?phpprenoms=array'Mussab', 'Marc','julian','Naya’;tab2=array'Claire', 'Anne’;//On ajoute les valeurs Claire et Anne à partir de l'index 2 arrayspliceprenoms,2, 0,tab2 ; p ="";//On affiche les valeurs de notre tableau fori = 0; i countprenoms; i++ p .= 'Prénom n' . i+1 . ' : ' . prenomsi .'br'; //On affiche la taille du tableau et les prénoms echo 'Le tableau contient ' .countprenoms.' éléments : br' .p;?PHPLe Résultat

page 51

Page 52 : 52Example 4Supprimer des éléments choisis dans un tableauSpliceTableaux?phpprenoms=array'Mussab','Marc','julian','Naya’;//On supprime deux valeurs à partir de l'index 2arrayspliceprenoms,2, 2 ;p ="";//On récupère les valeurs de notre tableau fori = 0; i countprenoms; i++ p .= 'Prénom n' . i+1 . ' : ' .prenomsi . 'br'; //On affiche la taille du tableau et les prénoms echo 'Le tableau contient '.countprenoms.' éléments : br' .p;?phpLe Résultat

page 52

Page 53 : 53Example 5 Trier les éléments d’un tableausortTableaux?phpprenoms=array'Mussab', 'Marc','julian','Naya','anne’;//On trie le tableaux dans l'ordre alphabétique sortprenoms ;//On récupère les valeurs de notre tableau p ="";fori = 0; i countprenoms; i++ p .= 'Prénom n' . i+1 . ' : ' . prenomsi. 'br’; //On affiche la taille du tableau et les prénoms echo 'Le tableau contient ' .countprenoms.' éléments : br' .p;?PHPLe Résultat

page 53

Page 54 : 54Example 6Trier les éléments d’un tableausortTableaux?phpnums=array10,20,3, 30,4, 1,35,98;sortnums;fori = 0; i countnums; i++ echo numsi." , \t"; ?phpLe Résultat1 , 3 , 4 , 10 , 20 , 30 , 35 , 98 ,?phpnums=array10,20,3, 30,4, 1,35,98;rsortnums;fori = 0; i countnums; i++ echo numsi." , \t"; ?phpLe Résultat98 , 35 , 30 , 20 , 10 , 4 , 3 , 1

page 54

Page 55 : 55Exercise 2Ecrire une fonction php qui prend comme paramètres un tableau "tab" et une variable "v" et renvoie true si v dans tab et false sinon Tableaux

page 55

Page 56 : 56Exercise 2: solution?phpnums=array10,20,3, 30,4, 1,35,98;function searcheArraytab,v fori=0;icounttab;i++ iftabi==vreturn true; return false;echo searcheArraynums,100;// echo inarray1,nums?PHPTableaux

page 56

Page 57 : 57Exercise 3Ecrivez une fonction PHP totostr qui prend une chaîne des caractères en paramètre ne contient que les caractères alphabétiques et convertir la première lettre de chaque mot en majuscule et les autres lettres en minuscule. Testez cela avec : toto "wELCome mUssAB ZneIKA ";Doit afficher : Welcome Mussab ZneikaTableaux

page 57

Page 58 : 58Exercise 3: solution?phpfunction totostr1 str1=trimstr1;str2= strtolowerstr1;res="";s=explode" ",str2;foreach s as elmres=res.strtoupperelm0;res=res.substrelm,1, strlenelm;res=res. " ";return res;echo toto"wELCome mUssAB ZneIKA"; ?PHPTableaux

page 58

Page 59 : 59Tableaux AssociatifUn tableau associatif est appelé aussi dictionnaire ou hashtable. On associe à chacun de ses éléments une clé dont la valeur est de type chaîne de caractères.L’initialisation d’un tableau associatif est similaire à celle d’un tableau normal.Exemple 1 : personne = array‘’Nom’’ = ‘Zneika’’, ‘’Prénom’’ = ‘Mussab’’;Exemple 2 :personne‘’Nom’’ = ‘Zneika’’;personne‘’Prénom’’ = ‘Mussab’’;

page 59

Page 60 : 60Tableaux AssociatifParcours d’un tableau associatif.• personne = array‘’Nom’’ = ‘Zneika’’, ‘’Prénom’’ = ‘Mussab’’;Exemple 1 :foreachpersonne as elem echo elem;Exemple 2 :foreachpersonne as key = elem echo ‘’key : elem’’;• Quelques fonctions alternatives pour le parcours de tableaux normaux ou associatifs :• resettab : place le pointeur sur le premier élément• currenttab : retourne la valeur de l’élément courant• nexttab : place le pointeur sur l’élément suivant• prevtab : place le pointeur sur l’élément précédant• eachtab : retourne la paire clé/valeur courante et avance le pointeur

page 60

Page 61 : 61Tableaux AssociatifExemple ?phpfamille = array"pere" ='robisson', "mere"='gilda',"soeur"='Laurence', "frere" = 'Ludovic', "cousin1" ='Guillaume',0=50 ;foreach famille as elm echo elm."br"; foreach famille as key =elm echo "key = elm.br"; ?php

page 61

Page 62 : 62Tableaux multidimensionnels Aussi simple qu'un tableau dans un tableau pour créer une matrice de 33 on peut écrire toto = arrayarray 1, 2, 3 ,array 4, 5, 6 ,array 7, 8, 9 ;Accéder aux éléments de Matrix echo toto 1 2 ; // 6echo toto 2 0 ; // 7Parcours d’un tableauforeach toto as row foreach row as element echo "element ";echo "br";

page 62

Page 63 : 63Les FormulairesPour obtenir des données à partir de HTTP GET :Variable GET GET "nomparamètre"Pour obtenir des données à partir de HTTP POST :Variable POST POST "nomparamètre"Défini automatiquement par PHP

page 63

Page 64 : 64Les Formulaires: Exemple1center h1 Login Form /h1 /centerform action="Page1.php" method="GET" divclass="container"labelUsername : /label input type="text"placeholder="Enter Username" name="username"requiredlabelPassword : /label inputtype="password" placeholder="Enter Password"name="password" requiredbutton type="submit"Login/button /div/formHtmlPage1.htmlLe Résultat?phpx=GET "username"; ifx=="Mussab"echo "Welcom x";elseheader"Location:HtmlPage1.html";?page1.php

page 64

Page 65 : 65Les Formulaires: Exemple2center h1 Login Form /h1 /centerform action="Page1.php" method="POST" divclass="container"labelUsername : /label input type="text"placeholder="Enter Username" name="username"requiredlabelPassword : /label inputtype="password" placeholder="Enter Password"name="password" requiredbutton type="submit"Login/button /div/formHtmlPage1.htmlLe Résultat?phpx=POST "username"; ifx=="Mussab"echo "Welcom x";elseheader"Location:HtmlPage1.html";?page1.php

page 65

Page 66 : 66Les Formulaires: Exemple 3form action="Page1.php" method="POST" divclass="container"h2Que signifie HTML ?/h2input type="radio" name="ans" value="ans1" a. Et hyperliens texte Markup Languagebr input type="radio" name="ans" value="ans2"b. Hyper Text Markup Language brinput type="radio" name="ans" value="ans3"c. Langage de manipulation hypertextebrinput type="radio" name="ans" value="ans4"d. Langage de balisage de l' outil d'accueilbrbutton type="submit"Login/button /div/formHtmlPage1.htmlLe Résultat?phpx=POST"ans";ifx=="ans2"echo "Bravo";elseecho "no";?page1.php

page 66

Page 67 : 67Les Formulaires: Exemple 4?phpx="mussab";header"Location: page1.php?id=5&name=x" ;?HtmlPage1.phpLe Résultat?phpid=GET"id";name=GET"name";echo "id: name";?page1.php

page 67

Page 68 : 68Inclusions des fichiersOn peut inclure dans un script php le contenu d’un autre fichier.require insert dans le code le contenu du fichier spécifié même si ce n’est pas du code php. Est équivalent au préprocesseur includedu C.Exemple :require"fichier.php";include évalue et insert à chaque appel même dans une boucle le contenu du fichier passé en argument.Exemple : include"fichier.php";Les instructions include et require sont identiques, sauf en cas d'échec : require produira une erreur fatale ECOMPILEERROR et arrêtera le script include ne produira qu'un avertissement EWARNING et le script continuera • includeonce, requireonce

page 68

Page 69 : 69Inclusions des fichiers?phpinclude"page1.php";?HtmlPage1.phpLe Résultat?phpecho "Welcome to our page www.example.com, date : ". date"Y-m-d H:i:s";?page1.php

page 69

Page 70 : 70Inclusions des fichiers : Exemple 2 ?phprequire"page1.php";?HtmlPage1.phpLe Résultat?phpecho "Welcome to our page www.example.com, date : ". date"Y-m-d H:i:s";?page1.php

page 70

Page 71 : 71Cookies Un cookie est un fichier que le serveur envoi sur la machine de l'utilisateurIls sont principalement utilisés pour distinguer les utilisateursIl s'agit d'une liste de correspondances clé valeurIls ont une date d'expirationIls sont stockés sur l'ordinateur de l'utilisateurIls sont envoyés à chaque demandeDifférents cookies pour différents domainesIls sont précieux ! Si quelqu'un te les vole alors ça devient toi

page 71

Page 72 : 72Cookies Salut! Pour, rappelez-vous que vous êtes un administrateur je suis un administrateurD'accord, fais ce que tu veux admin72

page 72

Page 73 : 73Cookies Ils sont transférés dans les en-têtes de requêtePour définir un cookie pour un utilisateur, nous faisons :setcookie nom , valeur, expirerLa fonction setcookie doit être placé avant tout code HTML, car lecache du navigateur doit être vide pour que cette fonctionfonctionne convenablementExemple:setcookie"nomcookie", "mussab", time+36000;time : renvoie l'heure au format d'horodatage UnixExpire apres 3600 secondes à partir de maintenant

page 73

Page 74 : 74Cookies Ils sont situés dans la variable COOKIEIl a les clés des noms des cookiesIl a les valeurs des cookiesPour supprimer les cookies il suffit de définir le cookie avec expirerdans le passé: Exemple:setcookie"nomcookie", "mussab", time-36000;Afficher un cookie: echo COOKIE" nomcookie ";Afficher tous les cookies: printrCOOKIE;

page 74

Page 75 : 75Cookies Exemple ?phpsetcookie"user","mussab", time+6060;?html head /head body?phpifissetCOOKIE"user" echo "Welcome". COOKIE"user"; ?/body /htmlPage1.php

page 75

Page 76 : 76Sessions Les sessions sont un moyen de sauvegarder et de modifier des variablestout au cours de la visite d’un internaute sans qu’elles ne soient visiblesdans l’URL et quelque soient leurs types tableau, objet….Cette méthode permet de sécuriser un site, d’espionner le visiteur, desauvegarder son panier e-commerce, etc.Les informations de sessions sont conservées en local sur le serveurtandis qu’un identifiant de session est posté sous la forme d’un cookiechez le client ou via l’URL si le client refuse les cookies.

page 76

Page 77 : 77Sessions Fonction sessionstart Démarre une session ou restaure la précédente si l'utilisateur aenvoyé un ID de session valideParce qu'il définit un cookie, nous l'appelons avant toute sortieVariable SESSIONNous l'utilisons après avoir appelé sessionstartLes variables sont stockées et seront disponibles dans les demandesfutures avec le même ID de session

page 77

Page 78 : 78Sessions Quelques fonctions :sessionstart : démarre une session.sessiondestroy : détruit les données de session et ferme la session. Cette fonction ne détruit pas les variables globales associées à la session, de même, elle ne détruit pas le cookie de session.sessionunset : détruit toutes les variables de la session courante.sessionid: récupérer ou définir l'identifiant de session pour la session courante. sessionstatus: pour connaître l'état de la session courante.PHPSESSIONDISABLED si les sessions sont désactivées.PHPSESSIONNONE si les sessions sont activées, mais qu'aucune n'existe.PHPSESSIONACTIVE si les sessions sont activées, et qu'une existe.

page 78

Page 79 : 79Sessions Sauvegarder des variables de type objet dans une session est la méthode de sécurisation maximum des données : elles n’apparaîtront pas dans l’URL et ne pourront pas être forcées par un passage manuel d’arguments au script dans la barre d’adresse du navigateur.Les données de session étant sauvegardées sur le serveur, l’accès aux pages n’est pas ralenti même si des données volumineuses sont stockées.Une session est automatiquement fermée si aucune requête n’a été envoyée au serveur par le client durant un certain temps 2 heures par défaut dans les fichiers de configuration Apache.Une session est un moyen simple de suivre un internaute de page en page sans qu’il s‘en rende compte. On peut ainsi sauvegarder son parcours, établir son profil et établir des statistiques précises sur la fréquentation du site, la visibilité de certaines pages, l’efficacité du système de navigation…

page 79

Page 80 : 80Sessions Exemple ?phpsessionstart;if isset SESSION"pageviews" ?pVous avez vu la page ?php echo SESSION "pageviews"; ?fois /p?php ++SESSION"pageviews" ; else SESSION"pageviews" = 1; ?Page1.php

page 80

Page 81 : 81Arrêt prématuré • Pour stopper prématurément un script, il existe deux fonctions.• die arrête un script et affiche un message d’erreur dans le navigateur.• Exemple :• ifmysqlqueryrequette == false• die‘’Erreur de base de données à la requête : br /requet’’;• exit l’arrête aussi mais sans afficher de message d’erreur.• Exemple :• function foobar •exit;• • Ces fonctions stoppent tout le script, pas seulement le bloc en cours.

page 81

Page 82 : 82Gestion de Fichiers De nombreuses applications travaillent avec des fichiers. Que ce soit pour les lire, les remplir, les supprimer ou même changer leurs attributs.L’accès aux fichiers locaux est très rapide. Si vous avez peu de traitements et de tris à faire sur le contenu, il est généralement plus performant d’utiliser des fichiers qu’une base de données.Gestion des fichiers Stockage de donnéesBien que plus lent qu'une base de données Manipulation des fichiers uploadés À partir de formulaires Création de fichiers à télécharger

page 82

Page 83 : 83Gestion de Fichiers Lecture et écriture: Ouvrir/fermer un fichier fopen : ouvre un fichier en tant que « flux », et PHP renvoie un « gestionnaire » vers le fichier qui peut être utilisé pour référencer le fichier ouvert dans d'autres fonctions.Chaque fichier est ouvert dans un mode particulier.fclose : ferme le fichier. ‘r’Ouvert en lecture seulement. Commencer au début du fichier.‘r+’Ouvert à la lecture et à l'écriture.Commencer au début du fichier.‘w’Ouvert à l'écriture uniquement. Supprimez tout le contenu précédent, si le fichier n'existe pas, créez-le. ‘a’Ouvrir l'écriture, mais commencer à la FIN du contenu actuel. ‘a+’Ouvrez pour la lecture et l'écriture, commencez à FIN et créez un fichier si nécessaire.

page 83

Page 84 : 84Gestion de Fichiers Lecture et écriture: Ouvrir/fermer un fichier Exemple?php// ouvrir le fichier à lire inp = fopen‘some/file.ext’,’r’;// ouvrir le fichier à écrire out = fopen‘some/file.ext’,’w’;// fermer les deux fichiers fcloseinp;fcloseout;?

page 84

Page 85 : 85Gestion de Fichiers Lecture et écriture: Lecture de données Il existe deux fonctions principales pour lire les données :fgetsfp,bytes : lit jusqu'à bytes de données, s'arrête à la nouvelle ligne ou à la fin du fichierfreadfp,octets: lit jusqu'à octets de données, s'arrête à la fin du fichierfeoffp : renvoie true si nous avons atteint la fin du fichier Exemple:fp = fopen'test.txt', 'r’;while !feoffp echo fgetsfp, 1024;echo 'br /';fclosefp;

page 85

Page 86 : 86Gestion de Fichiers Lecture et écriture: Lecture de données Il existe deux fonctions « rapides » qui ne nécessitent pas l'ouverture d'un fichier :filenom de fichier: lit le fichier entier dans un tableau avec chaque ligne une entrée distincte dans le tableau.filegetcontentsfilename: lit le fichier entier en une seule chaîneExemple:?phptab = file'test.txt';fori=0 ; tabi ; i++echo tabi.'br';?Exemple:?phpcontenufichier = filegetcontents'test.txt';echo contenufichier;?

page 86

Page 87 : 87Gestion de Fichiers Lecture et écriture: Écriture de donnéesfwritefp,data : écrire des données dans un fichier Exemple:// Ouvre le fichierfp = fopen"test.txt", "w";//Insère le texte « PHP » dans le fichierfwrite fp , "PHP" ;fclosefp;

page 87

Page 88 : 88Gestion de Fichiers Lecture et écriture: Écriture de donnéesfileputcontents: une fonction d’accès rapide pour écrire dans un fichier.La fonction fileputcontents prend en paramètre une adresse de fichier et une chaîne de caractères.La chaîne est alors écrite dans le fichier. Si le fichier existait déjà, son contenu est écrasé.Il est toutefois possible de demander à ce que la chaîne en argument soit ajoutée au fichier au lieu de remplacer le contenu actuel. Il suffit alors de spécifier la constante FILEAPPEND comme troisième paramètre.Exemple:?phpfichier = 'test.txt’;contenu = 'Contenu du fichier';fileputcontentsfichier, contenu, FILEAPPEND ;?

page 88

Page 89 : 89Gestion de Fichiers Quelques fonctions:fileexistsfile : indique si le fichier file existefilesizefile : retourne la taille du fichier filefiletypefile : retourne le type du fichier fileunlinkfile : détruit le fichier filecopysource, dest : copie le fichier source vers destreadfilefile : affiche le fichier filerenameold, new : renomme le fichier old en newPlus: https://www.php.net/manual/fr/ref.filesystem.php

page 89

Page 90 : 90Gestion de Fichiers Exercise 1Ecrire une script en PHP pour lire le contenu d'un fichier texte"test.txt" ligne par ligne et afficher à l'écran le nombre de motsde ce fichier.Exemple : Si le fichier "test.txt" contient les lignes suivantes :Il y a une aire de jeuxUn avion est dans le cielLe ciel est bleuLa fonction doit afficher la sortie 17

page 90

Page 91 : 91Gestion de Fichiers Exercise 1: solution1?php// ouvrir le fichier pour lecture fp=fopen"test.txt","r";nbmots=0;//lire le fichier ligne par ligne while !feoffp line=fgetsfp; // lire une ligne line=trimline;mots=explode" ",line; //diviser le texte par un séparateur d'espace nbmots=nbmots+countmots;fclosefp;echo nbmots;?PHPCette solution est bonne s'il n'y a qu'un seul espace entre les mots

page 91

Page 92 : 92Gestion de Fichiers Exercise 1: solution2?php// ouvrir le fichier pour lecture fp=fopen"test.txt","r";nbmots=0;//lire ligne par ligne while !feoffp line=fgetsfp; // lire une ligne line=trimline;mots=explode" ",line; //diviser le texte par un séparateur d'espace foreachmots as em ifem!="" nbmots=nbmots+1;fclosefp;echo nbmots;?PHP

page 92

Page 93 : 93Gestion de Fichiers Exercise 1: solution 3?php nbmots=0;//ire le contenu complet du fichier contenufichier = filegetcontents'test.txt’;contenufichier=trimcontenufichier;//"\n" est le saut de ligne dans le fichier donc nous le remplaçons par " "contenufichier=strireplace"\n"," ",contenufichier;mots=explode" ",contenufichier;foreachmots as em //echo em."br";ifem!="" nbmots=nbmots+1;echo nbmots;?PHP

page 93

Page 94 : 94Gestion de Fichiers Exercise 2Le fichier "étudiants.txt" contient les notes des élèves du coursde programmation Web au format prénom, nom, note.Écrivez un script en PHP qui lirait le contenu du fichier"étudiants.txt" et écrirait dans un autre fichier les détails desétudiants dont la note est supérieure à 10.Exemple : étudiants.txtMussab,Zneika,20Naya, AL, 15Marc, Zet, 13Lois, Anab, 5Résultats attendus : étudiants1.txtMussab,Zneika,20Naya, AL, 15Marc, Zet, 13

page 94

Page 95 : 95Gestion de Fichiers Exercise 2: solution?php// ouvrir le fichier pour lecture fp=fopen"students.txt","r";// ouvrir le fichier pour l'écriturefpout=fopen"students1.txt","w";nb=0;//lire le fichier ligne par ligne while !feoffp student=fgetsfp; // lire une ligne tab=explode",",student;ifissettab2 iffloatvaltab2=10 fwritefpout,student;nb=nb+1; fclosefp;fclosefpout;echo nb;?PHP

page 95

Page 96 : 96Gestion de Fichiers Accès aux dossiers Il est possible de parcourir les répertoires grâce à ces quelques fonctions :chdirstr : Change le dossier courant en str. Retourne TRUE si succès, sinon FALSE.getcwd : Retourne le nom du dossier courant en format chaîne de caractères.opendirstr : Ouvre le dossier str, et récupère un pointeur d dessus si succès, FALSE sinon et génère alors une erreur PHPclosedird : Ferme le pointeur de dossier d.readdird : Renvoie le nom du fichier suivant dans le répertoire Les fichiers sont triés comme sur le système de fichierrewinddird : Retourne à la première entrée du dossier identifié par d

page 96

Page 97 : 97Gestion de Fichiers Accès aux dossiers Exemple: pour afficher les fichiers et dossiers dans le dossier actuel ?phphandle = opendir'./’;file=readdirhandle;whilefalse !== file file=readdirhandle;echo "filebr /";closedirhandle;?

page 97

Page 98 : 98Gestion de Fichiers Accès aux dossiers Il existe un autre moyen d’accéder aux dossiers : l’utilisation de la classe dir.la classe dir a les attributs :handle : valeur du pointeurpath : nom du dossierla classe dir a les méthodes :read : équivalent à readdirdclose : équivalent à closedirdConstructeur : dirstr : retourne un objet dir et ouvre le dossier str

page 98

Page 99 : 99Gestion de Fichiers Accès aux dossiers Exemple: pour afficher les fichiers et dossiers dans le dossier actuel ?phpd = dir'.'; // ouverture du dossier courantecho "Pointeur: ".d-handle."br";echo "Chemin: ".d-path."br";whilefp = d-read // lecture d’une entréeecho fp."br";d-close;?

page 99

Page 100 : 100Gestion de Fichiers Manipulation des fichiers uploadésIls sont envoyés au serveur avec une requête POSTIls sont stockés temporairement pendant l'exécution de notre programmeSi nous ne les sauvegardons pas, ils sont perdus après la fin de l'exécution

page 100

Page 101 : 101Gestion de Fichiers Manipulation des fichiers uploadés• Variable FILES: contient tous les fichiers téléchargés par l'utilisateur • userfile est le nom du champ de fichier des formulaires  FILES ‘userfile’ ‘name’: contient le nom réel du fichier  FILES ‘userfile’ ‘tmpname’: contient la localisation du fichier temporaire FILES ‘userfile’ ‘size’: contient la taille du fichier en octets moveuploadedfile nomdefichier, destination: vérifie si le nomdefichier a bien été téléchargé et enregistré

page 101

Page 102 : 102Gestion de Fichiers form enctype="multipart/form-data"method="post" action= "page1.php " input name="file1" type="file" /input type="submit" value="envoyer" //formHtmlPage1.html?phpdestination = ".\Uploads\\";if !empty FILES destination .= FILES 'file1' 'name' ;filename = FILES 'file1' 'tmpname' ;moveuploadedfile filename, destination ;?page1.php

page 102

Page 103 : 103Les exceptions en PHP Les exceptions sont utilisées pour modifier le flux normal d'un script si une erreur spécifiée se produit. Historiquement, les erreurs PHP sont gérées via le système error reporting, c'est à dire l'affichage de messages d'erreur directement dans la page. Depuis PHP 5, les exceptions ont fait leur apparition. Ce système de gestion des erreurs est radicalement différent, c'est un mécanisme utilisé dans de nombreux langages comme, C, Python ou Java.try catch:try…… catchException eprintre;

page 103

Page 104 : 104Les exceptions en PHP Comme tous les mots-clés de programmation, ces trois mots proviennent de l'anglais et signifient :Try : une fonction utilisant une exception doit se trouver dans un bloc "try". Si l'exception ne se déclenche pas, le code continuera normalement. Cependant, si l'exception se déclenche, une exception est « levée ».Throw : C'est ainsi que vous déclenchez une exception. Chaque « throw » doit avoir au moins une « prise ».Catch : Un bloc "catch" récupère une exception et crée un objet contenant les informations sur l'exception.

page 104

Page 105 : 105Les exceptions en PHP Le Résultat?phpfunction divisernb1, nb2 ifnb2==0 throw new Exception"diviser sur 0 pas possible ";return nb1/nb2;trydiviser20,0;catchException eecho 'Message:' .e-getMessage;?page1.phpMessage: diviser sur 0 pas possible

page 105

Page 106 : 106https://www.php.net/manual/fr/function.file.phpCours de Ahmed Jebali : Le Langage PHPSOURCES D'INFORMATIONS

page 106

Pages : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106

Le contenu de cet article est la propriété exclusive de son auteur.