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

APP-TSWD Apprentissage Par Problèmes Techniques des Sites Web Dynamiques Licence Professionnelle FNEPI Valérie Bellynck, Benjamin Brichet-Billet, Mazen.

Présentations similaires


Présentation au sujet: "APP-TSWD Apprentissage Par Problèmes Techniques des Sites Web Dynamiques Licence Professionnelle FNEPI Valérie Bellynck, Benjamin Brichet-Billet, Mazen."— Transcription de la présentation:

1 APP-TSWD Apprentissage Par Problèmes Techniques des Sites Web Dynamiques Licence Professionnelle FNEPI Valérie Bellynck, Benjamin Brichet-Billet, Mazen Mahrous Grenoble INP – Pagora 10 novembre 2014 Cours en Réponse à questions, n° 2

2 Groupe : ? Autres groupes ? ? Profs Comment lire la doc. de référence de PHP, php.net ? Qu’est-ce que le code « !== FALSE » trouvé dans l’exemple de fgetcsv() ? Petites révisions des structures de contrôle de boucle : while, for et foreach… Quelle est la différence entre != et !== ? Qu’est vraiment un tableau associatif ? Différence entre tableau indexé et tableau associatif ? Questions reçues

3 Description de la « déclaration » Le «manuel de référence » de PHP type de ce qui est « rendu » type des paramètres crochet pour marquet que le « contenu » est facultatif

4 Description des paramètres Le «manuel de référence » de PHP ce qui est « rendu » paramètres NULL si échec

5 Valeur de retour Le «manuel de référence » de PHP Notes !! FALSE si fin de fichier NULL si échec

6 Un exemple du manuel traitement d’une ligne appel de la fonction Si l’affectation « rend » FALSE, on sort de la boucle fermeture du fichier Le fichier doit d’abord être ouvert ouverture du ficher Après chaque instruction, la tête de lecture est positionné pour la prochaine lecture

7 L’affectation qui « rend » FALSE ou NULL if ( ($handle = fopen("test.csv", "r") ) !== FALSE) {... while ( ($data = fgetcsv($handle, 1000, ",") ) !== FALSE) {… affectation comparaison Et pourquoi pas != ?

8 Opérateurs d'affectation http://php.net/manual/fr/language.operators.assignment.php Opérateurs d’affectation <?php $a = ($b = 4) + 5; echo "a=$a, b=$b \n"; ?> <?php $a = 3; $a += 5; $b = "Bonjour "; $b.= " tout le monde!"; ?> affecte la valeur 8 à la variable $a correspond à l'instruction '$a = $a + 5'; affecte la valeur "Bonjour tout le monde!" à la variable $b : identique à $b = $b." tout le monde!"; $a est maintenant égal à 9, et $b vaut 4

9 Le type booléen : FALSE, TRUE http://php.net/manual/en/language.types.boolean.php http://php.net/manual/fr/language.types.boolean.php

10 http://php.net/manual/en/language.types.null.php http://php.net/manual/fr/language.types.null.php La valeur spéciale NULL

11 (=,) ==, !=, ===, !== : opérateurs de comparaison Opérateurs d'affectation : = http://php.net/manual/fr/language.operators.assignment.php Opérateurs de comparaison : ==, !=, ===, !== http://php.net/manual/fr/language.operators.comparison.php ExempleNomRésultat $a == $bEgalTRUE si $a est égal à $b après le transtypage. $a === $bIdentiqueTRUE si $a est égal à $b et qu'ils sont de même type. $a != $bDifférentTRUE si $a est différent de $b après le transtypage. $a <> $bDifférentTRUE si $a est différent de $b après le transtypage. $a !== $bDifférentTRUE si $a est différent de $b ou bien s'ils ne sont pas du même type. $a < $bPlus petit queTRUE si $a est strictement plus petit que $b. $a > $bPlus grandTRUE si $a est strictement plus grand que $b. $a <= $bInférieur ou égalTRUE si $a est plus petit ou égal à $b. $a >= $bSupérieur ou égalTRUE si $a est plus grand ou égal à $b.

12 Comparaison d’égalité avec == ou === Comparaison de types en PHP http://php.net/manual/fr/types.comparisons.php == TRUEFALSE 10 NULL array()"php""" TRUE FALSETRUEFALSE TRUEFALSE TRUEFALSETRUE FALSETRUE 1 FALSETRUEFALSE 0 TRUEFALSETRUE FALSETRUE === TRUEFALSE 10 NULL array()"php""" TRUE FALSE TRUEFALSE 1 TRUEFALSE 0 TRUEFALSE $a == $bEgalTRUE si $a est égal à $b après le transtypage. $a === $bIdentiqueTRUE si $a est égal à $b et qu'ils sont de même type. $a != $bDifférentTRUE si $a est différent de $b après le transtypage. $a <> $bDifférentTRUE si $a est différent de $b après le transtypage. $a !== $bDifférentTRUE si $a est différent de $b ou bien s'ils ne sont pas du même type.

13 L’affectation qui « rend » FALSE ou NULL if (($handle = fopen("test.csv", "r")) !== FALSE) {... while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {… Le manuel de référence de PHP dit que fopen() « Retourne une ressource représentant le pointeur de fichier, ou FALSE si une erreur survient. » Donc en cas d’erreur, $handle vaut FALSE. Pour comparer « explicitement » à FALSE, on utilise === et !==. Ici, on ne veut traiter que s’il n’y a pas eu d’erreur. Le manuel de référence de PHP dit que fopen() « fgetcsv() retourne NULL si un paramètre handle invalide est fourni ou FALSE en cas d'autres erreurs, y compris la fin du fichier. » Donc en cas d’erreur, $handle vaut FALSE. Pour comparer « explicitement » à FALSE, on utilise === et !==. Ici, on ne veut traiter que s’il n’y a pas eu d’erreur. http://php.net/manual/fr/function.fopen.php http://php.net/manual/fr/function.fgetcsv.php

14 empty(), is_null(), isset(), if($x) Comparaison de types en PHP http://php.net/manual/fr/types.comparisons.phphttp://php.net/manual/fr/types.comparisons.php Après l’affectation de $x, définie par l’expression de la colonne 1, le type de al variable est fourni en résultat de la fonction gettype($x) dans la colonne 2 puis les résultats de empty($x), is_null($x), isset($x) dans les colonnes 3 à 5, et la dernière colonne donne le résultat du test fi($x). Expression gettype()empty()is_null()isset()boolean : if($x) $x = ""; chaîne de caractères TRUEFALSETRUEFALSE $x = null; NULL TRUE FALSE var $x; NULL TRUE FALSE $x est indéfini NULL TRUE FALSE $x = array(); array TRUEFALSETRUEFALSE $x = false; boolean TRUEFALSETRUEFALSE $x = true; boolean FALSE TRUE $x = 1; entier FALSE TRUE $x = 42; entier FALSE TRUE $x = 0; entier TRUEFALSETRUEFALSE $x = -1; entier FALSE TRUE $x = "1"; chaîne de caractères FALSE TRUE $x = "0"; chaîne de caractères TRUEFALSETRUEFALSE $x = "-1"; chaîne de caractères FALSE TRUE $x = "php"; chaîne de caractères FALSE TRUE $x = "true"; chaîne de caractères FALSE TRUE $x = "false"; string FALSE TRUE

15 Boucle while incrément du compteur fin de la boucle initialisation du compteur condition de sortie de la boucle corps de la boucle récupération de la borne instruction while

16 Lire : http://php.net/manual/fr/language.types.array.php http://php.net/manual/fr/function.array.php Ce sont des « tableaux associatifs » : ils associent des clés à des valeurs. Référencement par index numérique ou textuel Faire afficher les valeurs d’un tableau Tableau en PHP $data['nom'] $data['prenom'] $data[0] $data[1] echo "\n La première valeur est ".$data[0]; echo "\n La deuxième valeur est $data[1]"; echo "\n La deuxième valeur est ${data[1]}"; print( "\n La valeur du tableau à l’index « nom » est ".$data['nom'] ); echo "\n Toutes les valeurs du tableau \$data sont "; print_r($data);

17 Lire : http://php.net/manual/fr/language.types.array.php Tableau en PHP

18 Explictement par le constructeur PHP $entete = array( 'nom', 'prenom', ); Valeur par valeur, indice implicite $entete[] = 'nom'; $entete[] = ’prenom’; Implicitement comme résultat d’une fonction $entete = fgetcsv($pointeTeteFic); Valeur par valeur avec l’indice $entete[0] = 'nom'; $entete[1] = 'prenom'; Déclaration d’un Tableau en PHP Valeur par valeur avec un indice textuel $ligne[‘nom’] = ’De Penguern De Trisigondi’; $ligne[‘prenom’] = ’Pierre-Antoine'; $ligne[$entete[0]] = ’De Penguern De Trisigondi’; $ligne[$entete[1]] = ’Pierre-Antoine’;

19 Avec l’instruction for : Exemple de fgetcsv() Parcours d’un Tableau en PHP : for incrément du compteur récupération de la borne comparaison du compteur pour sortir initialisation d’un compteur $num champs à la ligne $row: \n"; $row++; for ($c=0; $c \n"; } } fclose($handle); } ?> contenu de la boucle

20 Parcours d’un Tableau en PHP : foreach Avec l’instruction foreach : Amélioration de l’exemple de fgetcsv() instancie la valeur associée Plus besoin de récupérer la borne instancie la clé de chaque valeur spécifie le tableau $num champs à la ligne $row: \n"; $row++; foreach ($data as $k => $v) { echo "data[$k] = ". $data[$k]. "= ${data[$k]} = $v \n"; } } fclose($handle); } ?> contenu de la boucle

21 La mémoire occupée par un tableau Des petits essais à faire pour manipuler les tableaux en PHP : http://tiprof.fr/SitesWebDynamic/Techniques-swd/05_Tableaux/tableau-PHP.html Un tutoriel sur les tableaux PHP et la liste de toute les fonctions PHP sur les tableaux : http://www.atelierphp.net/lesson_05_arrays/lesson_05.php Explications avec illustration graphique de la place prise en mémoire pour les tableaux PHP : http://julien-pauli.developpez.com/tutoriels/php/internals/variables/?page=page_4#LIV Explications sur la manière dont PHP s’y prend pour mémoriser un tableau : grosso-modo, un calcul est appliqué sur les clés pour identifier une liste d’éléments (les clés sont « hashées ») ; deux clés peuvent conduire à une collision; il y a alors plusieurs éléments dans la liste; chaque élément de la liste contient la clé, la valeur, et les adresses mémoire de ses éléments précédent et suivant. http://stackoverflow.com/questions/25081344/how-does-php-memory-actually-work

22 La mémoire occupée par un tableau Exemples interactifs de commandes sur les tableaux avec affichage de la place mémoire occupée http://tiprof.fr/Essais-php- js/tableaux/tailleMemoire- pourTableaux.php?n1=on&n2=on&n8=on

23 Quelques fonctions très utiles sur les tableaux

24 $_SERVER $_GET $_POST $_REQUEST Exemples de tableaux : les variables d’environnement foreach($_SERVER as $k => $v){ echo "\n $k $v »; }

25 http://php.net/manual/fr/function.fgetcsv.php Liens

26  Structuration du code : Modularité, inclusion et contrôle

27 header.php Structuration du code footer.php vars.php

28 Structuration du code index.php

29 Composition d’une page

30 http://lmgtfy.com/?q=list+files+php Exemple de menu dynamique

31 Les variables d’environnement http://www.tiprof.fr/PHP-mySQL/ressources/php/PHP-GuidePlus.html http://www.tiprof.fr/PHP-mySQL/ressources/php/PHP-GuidePlus.html Et beaucoup d’autres… http://www.tiprof.fr/PHP-mySQL/ressources/php/PHP-GuidePlus.html http://www.tiprof.fr/PHP-mySQL/ressources/php/PHP-GuidePlus.html Aller plus loin…

32 Retour aux formulaires: GET, POST Osef.php Ex_form.html Exemple en live…


Télécharger ppt "APP-TSWD Apprentissage Par Problèmes Techniques des Sites Web Dynamiques Licence Professionnelle FNEPI Valérie Bellynck, Benjamin Brichet-Billet, Mazen."

Présentations similaires


Annonces Google