X-Git-Url: http://git.nguyen.vg/gitweb/?a=blobdiff_plain;f=prog_internet%2Fprog_internet_07.xhtml;fp=prog_internet%2Fprog_internet_07.xhtml;h=0000000000000000000000000000000000000000;hb=0a552a95e70324a04e9d06bd30ac5bc96b2a58b5;hp=73d92d164e91096949640a3afa24624b7611b996;hpb=171bd61f3e4cf06638c6a90fdc053efbec9623ff;p=hacks%2FsimpleWebSlides.git diff --git a/prog_internet/prog_internet_07.xhtml b/prog_internet/prog_internet_07.xhtml deleted file mode 100644 index 73d92d1..0000000 --- a/prog_internet/prog_internet_07.xhtml +++ /dev/null @@ -1,457 +0,0 @@ - - - -
-Les fonctions sont déclarées à l'aide du - mot-clé function. On renvoie des résultats à - l'aide du mot-clé return.
-function double ($x)
- {
- return $x + $x;
- }
-
- echo double(10);
- ]]>
-
- <?php
- $a = 42;
- function add_a($x)
- {
-
- return $x + $a;
- }
- echo add_a(10);
- ?>
-
- <?php
- $a = 42;
- function add_a($x)
- {
- global $a;
- return $x + $a;
- }
- echo add_a(10);
- ?>
-
- Le code de gauche affiche 10 ! - Les variables ont une portée locale - par défaut. Si $a n'est pas définie dans le corps de la - fonction, sa valeur est NULL - (variable non définie). Pour référencer - des variables globales, on utilise le mot clé global. -
-On peut utiliser une fonction « avant » de la définir :
<?php
- echo next(10);
- echo <br/>;
-
- function next($x)
- {
- return $x + 1;
- }
- ?>
- On définira toujours des fonctions avant de - les utiliser. On ne peut pas définir deux fonctions avec le même - nom. -
-On utiliser le modificateur & devant - un paramètre de fonction pour indiquer que ce dernier est passé - par référence.
-<?php
- function add_a($tab)
- {
- $tab["a"] = 42;
- }
-
- $mytab = array();
- add_a($mytab);
- echo $mytab["a"];
- //n'affiche rien (car NULL â "")
-?>
- <?php
- function add_a(&$tab)
- {
- $tab["a"] = 42;
- }
-
- $mytab = array();
- add_a($mytab);
- echo $mytab["a"];
- //affiche 42
-?>
- Lorsque l'on veut modifier un argument de la - fonction (plutot que de renvoyer une version modifiée, par - ex. mise à jour d'un tableau, d'une chaîne, â¦), on doit le - passer par référence. -
-Les expressions régulières de PHP sont au format PCRE (Perl - Common Regular Expressions) '/r/' - où r est une expression de la forme:
-
-
- r ::= a (un caractère)
- | . (n'importe quel caractère)
- | r1 | r2 (r1 ou r2)
- | r? (r répétée au plus 1 fois)
- | r* (r répétée 0 fois ou plus)
- | r+ (r répétée 1 fois ou plus)
- | [c1 ⦠cn] (un caractère parmis c1, â¦, cn)
- | [c1-cn] (un caractère parmis c1, â¦, cn)
- | [^c1 ⦠cn] (un caractère sauf c1, â¦, cn)
- | [^c1-cn] (un caractère sauf c1, â¦, cn)
- | ^ (début de texte)
- | $ (fin de texte)
- | (r) (r elle même)
-
-
-
-
- preg_match($regexp, $chaine)
- renvoie 1 si une sous-chaine de $chaine
- correspond à $regexp, 0 si aucune sous-chaine ne correspond
- et FALSE en cas de problème (attention,
- utiliser === pour tester le résultat).
-
<?php
- $chaine = "ABCDEFABCDEF";
- echo preg_match('/ABC/', $chaine); // affiche 1
- echo preg_match('/DEF/', $chaine); // affiche 1
- echo preg_match('/^ABC/', $chaine); // affiche 1
- echo preg_match('/^DEF/', $chaine); // affiche 0
- echo preg_match('/ABC$/', $chaine); // affiche 0
- echo preg_match('/DEF$/', $chaine); // affiche 1
- echo preg_match('/(ABC...)+/', $chaine); // affiche 1
- echo preg_match('/[^A-Z]+/'); // affiche 0
- echo preg_match('/[^A-Z]*/'); // affiche 1 !
- echo preg_match('/^[^A-Z]*$/'); // affiche 0
-?>
- preg_replace($regexp, $motif, $chaine)
- recherche toutes les sous-chaînes de $chaine reconnues - par $regexp et les remplace par $motif. Ce dernier - peut contenir $i pour référencer - le ième groupe de parenthèses
-<?php
- $chaine = "10-31-1981";
- $reg1 = "/([0-9]+)-([0-9]+)-([0-9]+)/";
- echo preg_replace($reg1, "$2/$1/$3", $chaine);
- // affiche 31/10/1981
-
- $reg2 = "/1/";
- echo preg_replace($reg2, "toto", $chaine);
- // affiche toto0-3toto-toto98toto
-
- $reg3 = "/[0-9]([0-9]*)/"
- echo preg_replace($reg3, "$1", $chaine);
- // affiche 0-1-981 (* déplie la regexp le plus possible)
-?>
- preg_split($regexp, $chaine)
- renvoie un tableau des sous-chaine de $chaine séparées - par $motif (équivalent à explode pour - des $regexp constantes).
-<?php
- $chaine = "Une phrase, c'est plusieurs mots.";
- print_r (preg_split("/[ ,.']+/", $chaine));
- //Affiche:
- //Array ( [0] => Une [1] => phrase [2] => c [3] => est
- // [4] => plusieurs [5] => mots [6] => )
-?>
- preg_match_all($regexp, $chaine, &$resultat)
- &$resultat est un tableau passé par - référence. Après l'appel, $resultat[0] contient un - tableau avec toutes les sous-chaines reconnues - et $resultat[i] contient tous les résultats reconnus par le - ième groupe de parenthèses. Renvoie le nombre de chaines - trouvées (i.e. la longueur de $resultat[0]). -
-<?php
- $res = array();
- $chaine = "ABC ACD AEF AB DEF";
- echo preg_match_all("/A([A-Z]*)/", $chaine, $res);
- //Affiche 4
- print_r ($res);
- /*Affiche
- Array ( [0] =>
- Array ( [0] => ABC [1] => ACD [2] => AEF [4] => AB)
- [1] =>
- Array ( [0] => BC [1] => CD [2] => EF [4] => B)
- )
-*/?>
-On utilise la méthode post pour les - formulaires. Les valeurs sont envoyées dans la requête HTTP (et non - pas encodées dans l'URL)
-
- <form action="cible.php" method="post"
- enctype="multipart/form-data">
- <input type="file" name="fichier" size="20"/>
- <button type="sumbit">Uploader le fichier</button>
- </form>
-
-Apperçu:
-Coté serveur, la variable $_FILES est
- définie. $_FILES["fichier"] contient un
- tableau avec des informations sur le fichier envoyé. Les autres
- champs (par exemple valeur d'un champ texte) sont stockés dans la
- variable $_POST (au lieu de $_GET).
-
Ãtant donné un formulaire avec un champ input de - type file et de nom "fichier" on a accès aux - information suivantes:
- fopen($nomfichier, $mode)
-Ouvre un fichier dont on donne le nom avec un mode - particulier. Les modes sont: "r" - (lecture), "r+" (lecture/écriture), - "w" (écriture), - "w+" (lecture/écriture, création si non-existant), - "a" (écriture, ajout à la fin si existant), - "a+" (lecture/écriture, création si non-existant, - ajout à la fin si existant). fopen renvoie un - descripteur de fichier que l'on peut utiliser pour manipuler le - fichier. -
. - fread($desc, $taille)
-Lit au maximum $taille caractères dans un fichier - dont le descripteur (renvoyé par fopen) - est $desc. La fonction renvoie un chaine d'au - plus $taille caractères ou FALSE en cas d'erreur. -
- fwrite($desc, $chaine)
-Ãcrit la chaine de caractères à la position courante dans le - fichier dont le descripteur est $desc. Renvoi le nombre - d'octets écrits ou FALSE en cas d'erreur. -
- fclose($desc)
-Ferme le fichier dont le descripteur est $desc -
- fseek($desc, $offset, $orig)
- Déplace le pointeur interne de position du fichier dont le - descripteur est $desc de $offset octets. Le - paramètre $orig donne l'origine: SEEK_CUR - (décalage à partir de la position courante), SEEK_SET - (position absolue dans le fichier), SEEK_END (décalage à - partir de la fin de fichier). -
- file_get_contents($nomfichier)
-Ouvre un fichier dont on donne le nom et renvoie son contenu sous - forme d'une chaine de caractères
- file($nomfichier)
-Renvoie un tableau avec une case par ligne dans le fichier. Chaque - entrée contient le "\n" terminal.
-