PHP M. Oudghiri Introduction Fonctions Variables Tableaux Chaînes
Au début de sa création par Rasmus Lerdorf (1994), PHP signifiait Personal Home Page. En 1997, le coeur de PHP a été redéveloppé et est devenu l’abréviation de Hypertext Preprocessor.
Opérateurs Instructions Formulaires Fichiers Sessions MySql
PHP est Open Source et gratuit PHP permet d’accéder facilement aux bases de données. PHP s’exécute sur le serveur et renvoie le code HTML au client. Le code PHP est protégé et ne peut pas être vu par le client. PHP est un descendant du langage C.
F.S.O
Matériel et Logiciels PHP M. Oudghiri Introduction Fonctions Variables Tableaux Chaînes Opérateurs Instructions
Serveur Web : Sous Linux : Serveur LAMP (Linux, Apache, MySQL, PHP) Sous Windows : WAMP (Windows, Apache, MySQL, PHP) Sous Mac : MAMP (Macintosh, Apache, MySQL, PHP)
Formulaires Fichiers Sessions
Éditeur : NeatBeans, Pspad, ou tout simplement un éditeur de texte comme bloc-notes sous Windows et gedit sous Linux.
MySql
Un navigateur : Mozilla, Internet Explorer, Opéra, ...
F.S.O
Fonctionnement de WampServer PHP M. Oudghiri Introduction Fonctions Variables Tableaux Chaînes Opérateurs Instructions Formulaires Fichiers Sessions MySql
Une fois Wamp server est démarré, une icône se place dans la barre des tâches à coté de l’horloge. Un clic permet : d’accéder à la page localhost dans laquelle on trouve : les versions de Apache, MySQL et PHP. un lien vers phpmyadmin qui permet de gérer les bases de données. la liste des projets.
d’accéder directement à phpmyadmin. d’accéder aux fichiers log des erreurs générées par Apache, MySQL et PHP. de démarrer, d’arrêter et de redémarrer Apache et MySQL.
F.S.O
Création d’un projet PHP PHP M. Oudghiri Introduction Fonctions Variables Tableaux Chaînes Opérateurs Instructions Formulaires Fichiers Sessions MySql
F.S.O
Un site web est formé par plusieurs fichiers de différentes extensions (html, php, css, pdf, doc, jpg, ...) qu’on mette dans un seul répertoire nommé par exemple MonSite. Il est impératif de placer le dossier MonSite dans le dossier www de Wampserver. L’URL du site sera : http://localhost/MonSite. Les pages qui seront affichées par défault sont index.html, index.html. En l’absence de toutes ces pages, le navigateur affiche une page vide.
Premier Script PHP PHP M. Oudghiri Introduction Fonctions Variables Tableaux Chaînes Opérateurs Instructions
Ma première page en PHP Aujourd’hui :
Formulaires Fichiers Sessions
Affichage : Wednesday November 16, 2011
MySql
Balises php Le code php doit être mis entre une des balises suivantes : <script language="php"> print (Date("l F d, Y")); print (Date("l F d, Y")); ?> Syntaxe En php, chaque instruction se termine par un point virgule ’;’
Fonctions : print et echo : permettent d’afficher à l’écran. Syntaxe : print(’toto’); et echo ’toto’;. Date : retourne la date courante. Les paramètres l F d, Y détermine le format de la date.
F.S.O
Code source d’une page php PHP M. Oudghiri Introduction Fonctions Variables Tableaux Chaînes Opérateurs Instructions Formulaires Fichiers Sessions MySql
F.S.O
Ma première page en PHP Aujourd’hui : Wednesday November 16, 2011
Le code source d’une page php affichée dans un navigateur ne contient aucune balise php. Un fichier php ne peut pas s’ouvrir directement par le navigateur.
Les commentaires PHP M. Oudghiri Introduction Fonctions Variables Tableaux Chaînes Opérateurs Instructions Formulaires Fichiers
PHP permet d’insérer des commentaires qui n’affectent pas l’interprétation du script. Il existe deux type de commentaires : Commentaire de fin de ligne : Il commence par // ou # et se termine automatiquement à la fin de la ligne. Commentaire en bloc : Il commence par /* et se termine par */. L’intérêt principal est qu’on peut mettre plusieurs lignes en commentaire.
Sessions MySql
F.S.O
Le naviguateur affiche une page vide
Fonctions PHP M. Oudghiri Introduction Fonctions
Les fonctions (resp. procédures) regroupent des instructions réutilisables par simple appel de la fonction (resp. procédure).
Différence entre fonction et procédure : Une fonction renvoie une valeur à la fin de son exécution, cependant une procédure n’en renvoie aucune.
MySql
//Exemple de fonction function division($x,$y){ return $x/$y; } print(division(2,4)); // affiche : 0.5
F.S.O
//Exemple de procédure function division($x,$y){ print($x/$y); } // affiche : 0.5
Variables PHP M. Oudghiri Introduction Fonctions Variables Tableaux
Une variable correspond à une zone de mémoire étiquetée par un nom et sert à enregistrer une valeur. En php, une variable est représentée par le signe $ suivi d’un nom, commençant par une lettre (a-z,A-Z) ou un souligné (_), suivi de lettres, chiffres ou soulignés. Elle reçoit une valeur avec l’opérateur d’affectation =.
Chaînes Opérateurs Instructions Formulaires
PHP n’exige pas une déclaration explicite du type d’une variable. Le type sera déterminé après l’affectation d’une valeur.
Fichiers Sessions MySql
$nom=’toto’; $AnnNaiss=1983;
$nom : type chaîne de caractères $AnnNaiss : type entier
Types de variables integer : entier positif ou négatif. double : nombre à virgule flottante : 1.23, 0.123e1, 12.3e-1. string : chaîne de caractères. boolean : booléenne (TRUE,FALSE).
F.S.O
null : variable non initialisée ou de valeur null.
Variable : type et conversion PHP M. Oudghiri Introduction Fonctions Variables Tableaux Chaînes
Fonction gettype Elle retourne le type de la variable passée en paramètre. $nom="ali"; $AnnNaiss=1983;
PHP change dynamiquement le type d’une variable lorsque son contenu change. $AnnNaiss=’Avrile 1983’;
gettype($AnnNaiss) retourne string
Opérateurs Instructions Formulaires Fichiers Sessions MySql
Autres fonctions Les fonctions suivantes retournent une valeur booléenne en comparant le type recherché à celui de la variable : is_integer($var), is_double($var), is_string($var), is_bool($var), is_array($var), is_null($var). Conversion de type La fonction (type_voulu)$var permet de convertir la valeur de $var dans le type type_voulu. Le paramère type_voulu prend les valeurs : integer, double, string, bool.
empty($var) Elle retourne true si la variable $var n’est pas initialisé ou possède la valeur null ou 0, et true dans le cas contraire.
Sessions MySql
empty($var1) et empty($var2) retournent 1
Détruire une variable La fonction unset($var) permet de détruire une variable. $var="toto"; unset($var); print($var); renvoie un message d’erreur.
F.S.O
Affectation PHP M. Oudghiri Introduction Fonctions Variables Tableaux Chaînes Opérateurs
Affectation par valeur L’interpréteur PHP crée la variable $a. Puis il affecte la valeur de $a à la variable $b. Par la suite, si la valeur de $a est modifiée, celle de $b restera inchangée.
Instructions Formulaires
Affectation par référence
Fichiers Sessions MySql
F.S.O
Avec l’opérateur de référence &, $b devient un alias de la variable $a. Les deux variables pointent alors vers la même section de mémoire, et donc sur le même contenu. Ainsi toute modification apportée à l’une des deux variables est répercutée dans l’autre.
Variable globale Toute variable déclarée dans le code en dehors, et avant, toute fonction, ou structure de contrôle, a une portée globale. Son appel dans une fonction se fait en utilisant le mot-clé global.
Sessions MySql
Variable statique Afin d’empêcher qu’une variable locale d’une fonction soit réinitialisée, on la déclare statique. Ainsi, la variable conserve sa valeur d’un appel à l’autre de la fonction.
F.S.O
Portée d’une variable PHP M. Oudghiri Introduction Fonctions Variables Tableaux Chaînes Opérateurs Instructions
Script 1 : 7 représente la valeur de $a dans la fonction teste(), cependant 2 est la valeur de $a en dehors de la fonction teste(). Script 2 : La variable $a conserve sa valeur 2, affectée au début du script, dans la fonction teste(). L’appel de la fonction incrémente de 1 la valeur initiale de $a. Script 3 : Le premier appel de la fonction teste() incrémente de 1 la valeur de la variable statique $i. La nouvelle valeur est conservée et sera incrémenté lors du deuxième appel de la fonction.
Fonction : transmission de paramètres PHP M. Oudghiri Introduction Fonctions Variables Tableaux Chaînes Opérateurs Instructions Formulaires
Transmission de paramètres par valeur locale et possédant la valeur 5 de la variable globale $a. Le changement de valeur de $a dans la fonction n’affectera pas celle de la variable globale $a.
Fichiers Sessions MySql
F.S.O
Transmission de paramètres par référence Il consiste à passer en paramètre une référence qui pointe sur la variable d’origine. Ainsi, toute modification de la valeur de $a dans la fonction se répercutera sur celle de la valeur d’origine. Pour indiquer qu’un paramètre est passé par référence, on le précède par &.
Les constantes PHP M. Oudghiri Introduction Fonctions Variables Tableaux Chaînes
Une constante est un identifiant qui représente une valeur qui ne peut jamais subir des modifications durant l’exécution du script. Le choix du nom d’une constante suit les même règles que celui d’une variable.
Opérateurs Instructions Formulaires
Par convention, le nom d’une constante est toujours en majuscule.
Fichiers Sessions MySql
F.S.O
define("ETAB","FSO"); echo ETAB; //Résultat FSO
Les tableaux PHP M. Oudghiri Introduction
En PHP, un tableau est une association ordonnée de valeurs à des clés.
Variables
Il existe deux manières de définir un tableau : tableau array La syntaxe à crochets
Fonctions associées à un tableau PHP M. Oudghiri Introduction Fonctions Variables Tableaux
count($tab) : retourne le nombre d’éléments affectés current($tab) : retourne la valeur de l’élément en cours key($tab) : retourne la clé de l’élément en cours next($tab) : déplace le pointeur à l’élément suivant
Chaînes
prev($tab) : déplace le pointeur à l’élément précédent
Opérateurs
reset($tab) : déplace le pointeur au premier élément
Instructions Formulaires Fichiers Sessions MySql
sort(,$tab) : trie les éléments du tableau selon l’ordre alpha-numérique et réaffecte les clés (0, 1, ...) asort(,$tab) : trie les éléments du tableau selon l’ordre alpha-numérique en conservant les clés rsort(,$tab) : même fonction que sort mais inverse l’ordre arsort(,$tab) : même fonction que asort main inverse l’ordre ksort(,$tab) : trie par valeur de clé krsort$tab) : même fonction que ksort mais inverse l’ordre
F.S.O
Ajout et suppression d’éléments PHP M. Oudghiri Introduction Fonctions
array_push($tab,v1,v2,...,vN) Elle permet de rajouter les valeurs v1,v2,...,vn à la fin du tableau $tab. Pour les rajouter au début du tableau, on utilise la fonction array_unshift.
array_pop($tab) Elle supprime le dernier élément du tableau et retourne cet élément s’il existe ou la valeur null dans le cas contraire. Pour supprimer le premier élément on utilise la fonction array_shift($tab). print(array_pop($tab1)) imprime ’e’ et retourne $tab1 = array(’0’ => ’a’,’1’ => ’b’,’2’ => ’c’, ’dd’ => ’d’);
unset($tab[$c])
F.S.O
On l’utilise pour supprimer l’élément de clé $c.
Extraction et fusion PHP M. Oudghiri Introduction Fonctions Variables Tableaux Chaînes Opérateurs
array_slice($tab,$d,$l) Elle extrait la partie du tableau de taille $l et commençant par l’élément à la position $d. Si $d est négatif, le compte du premier élément se fait à partir de la fin. Si $l est négatif, le tableau extrait commence par l’élément à la position $d et se termine par l’élément à la position $l-1.
array_merge($tab1,$tab2,...,$tabN) Elle retourne un tableau où sont rassemblées les valeurs des tableaux, passés en paramètres. Si les tableaux ont des clés en commun, la dernière valeur rencontrée écrasera l’ancienne.
$nom ="toto"; $prenom=’tati’; Pour inclure un guillemet simple (resp. double) dans une chaîne délimitée par des guillemets simples (resp. double) il faut le précéder par un antislash \.
Fichiers Sessions
$nom =’M\’hamed’;
MySql
Si une chaîne délimitée par des guillemets doubles contient une variable, alors celle-ci est évaluée. $nom="toto"; echo "Je m’appelle $nom"; Résultat : Je m’appelle toto
F.S.O
PHP M. Oudghiri Introduction Fonctions Variables Tableaux Chaînes
Une chaîne de caractères peut se voir comme un tableau dont chaque lettre est un élément.
Opérateurs Instructions Formulaires Fichiers Sessions MySql
F.S.O
$chaine="abcd"; for($i=0;$i"); }
Lettre d’indice 0 est : Lettre d’indice 1 est : Lettre d’indice 2 est : Lettre d’indice 3 est :
a b c d
Fonctions associées aux chaînes PHP M. Oudghiri Introduction
strlen($ch) Elle retourne le nombre de caractères dans la chaîne $ch. strlen("abcd") retourne 4
Fonctions Variables
strtolower($ch)
Tableaux Chaînes Opérateurs Instructions
Elle retourne la chaîne $ch avec toutes les caractères en miniscule. strtolower("MySql Php") retourne "mysql php"
Formulaires Fichiers
strtoupper($ch)
Sessions MySql
Elle retourne la chaîne $ch avec toutes les caractères en majuscule. strtoupper("MySql Php") retourne "MYSQL PHP" ucwords($ch)
F.S.O
Elle retourne la chaîne avec toutes les initiales des mots qui la composent en majuscules. ucwords("mySql php") retourne "MySql Php"
Fonctions associées aux chaînes PHP M. Oudghiri Introduction Fonctions
ucfirst($ch) Elle retourne la chaîne avec la première lettre en majuscule. ucfirst("mySql php") retourne "MySql php"
Fonctions : ltrim($ch,$l), rtrim($ch,$l) et trim($ch,$l) Ces trois fonctions suppriment de la chaîne $ch une liste de caractères définis dans $l.
Formulaires Fichiers Sessions MySql
ltrim agit sur le début de la chaîne $ch : ltrim("b .e abc.de . b e"," .be") retourne "abc.de . b e" rtrim agit sur la fin de la chaîne $ch : rtrim("b .e abc.de . b e"," .be") retourne "b .e abc.d" trim agit sur le début et la fin de la chaîne $ch : trim("b .e abc.de . b e"," .be") retourne "abc.d" En l’absence du paramètre $l, uniquement les espaces vides seront écrasés.
F.S.O
Fonctions associées aux chaînes PHP M. Oudghiri Introduction Fonctions Variables Tableaux Chaînes Opérateurs Instructions
addslashes($ch) Elle rajoute le caractère d’échappement \devant les caractères spéciaux : Guillemet ’, double guillemets ", antislash \, le caractère null (espace). addslashes("M’hamed\Nagy") retourne "M\’hamed\\Nagy"
Formulaires Fichiers Sessions MySql
htmlspecialchars($ch) htmlspecialchars($ch) remplace certains caractères spéciaux dans $ch par leurs équivalents en HTML : &, ", ’, <, >. htmlspecialchars("Tome & Jerry") "Tome & Jerry"
F.S.O
retourne
Fonctions associées aux chaînes PHP M. Oudghiri Introduction Fonctions Variables Tableaux Chaînes Opérateurs Instructions Formulaires
strstr($ch,$ch1) Elle recherche $ch1 dans $ch. S’elle est présente, la fonction retourne la portion de $ch allant de la première occurence de $ch1 jusqu’à la fin de $ch; sinon elle ne renvoie rien. La recherche est sensible à la casse. Pour effectuer une recherche ne tenant pas compte de la casse, on utilise la fonction stristr($ch;$ch1). strstr(’abcdabcd’,’bc’) retourne bcdabcd
Fichiers Sessions MySql
strrchr($ch, $l) Elle retourne la portion de $ch commençant à partir de la dernière occurrence de $l. strrchr("a%c a%dea%fg","a%") retourne a%fg
F.S.O
Fonctions associées aux chaînes PHP
substr($ch,$n,$l)
M. Oudghiri Introduction Fonctions Variables Tableaux Chaînes Opérateurs Instructions Formulaires
Elle retourne la portion de $ch de longueur $l qui commence au caractère $n. Cas $n négatif : la portion commence au caractère numéro $n à compter de la fin de $ch. Cas $l négatif : la portion se termine au caractère numéro -$l-1. Cas d’absence de $l : la portion se termine à la fin de $ch.
Chaînes et tableaux explode($sep,$ch) : retourne un tableau dont les éléments sont les portions de $ch séparées par $sep.
PHP M. Oudghiri Introduction Fonctions
Expressions Une expression est formée par des constantes et des variables reliés par des opérateurs.
Variables Tableaux Chaînes Opérateurs Instructions Formulaires Fichiers Sessions MySql
$x = $y + 5 : est une expression obtenue en appliquant l’opérateur + aux opérandes $y et $5. En PHP, il existe deux type d’opérateurs arithmétiques : Opérateurs binaires Ils porte sur deux opérandes : +, -, /, *. PHP dispoe aussi de l’opérateur modulo % : $a%$b retourne le reste de la division de $a par $b. Opérateurs unaires Ils font intervenir un seul opérande : -$a retourne l’opposé de $a.
F.S.O
Opérateur d’affectation PHP M. Oudghiri Introduction Fonctions Variables Tableaux
L’affectation est l’opération d’attribuer une valeur à une variable. Elle se fait avec l’opérateur =. Exemple : $x = 2. Il est impératif que l’opérande gauche soit une variable. Le membre droit peut être une constante, une variable, ou une expression quelconque : $y=$x+2.
Chaînes Opérateurs Instructions
L’affectation est une expression qui possède une valeur égale à celle de son membre droit : l’expression $x = 2 a la valeur 2.
Formulaires Fichiers Sessions MySql
F.S.O
l’opérateur d’affectation possède une associativité de droite à gauche : l’expression $z = $x = 2 signifie que $x = 2 sera d’abord évaluée, et puis sa valeur sera attribuée à $z. Opérateur += -= *= /= %=
Syntaxe a += b a -= b a *= b a /= b a %= b
Signification a =a+b a =a-b a =a*b a = a /b a =a% b
Opérateurs d’incrémentation et décrémentation PHP M. Oudghiri
En Java, il existe deux opérateurs unaires ++ et -- qui permettent respectivement d’incrémenter et de décrémenter de 1 la valeur d’un opérande de type numérique.
Opérateurs de post-incrémentation et post-décrémentation La valeur de l’expression de post-incrément $x++ (resp. post-décrément $x--) est celle de l’opérande $x. Cette expression a pour effet de bord l’incrémentation (resp. la décrémentation) de la valeur $x.
Formulaires Fichiers
Opérateurs de pré-incrémentation et pré-décrémentation
Sessions MySql
La valeur de l’expression de pré-incrément ++$x (resp. pré-décrément --$x) est celle de l’opérande $x après incrémentation (resp. décrémentation). $i=1; print($i++); // affiche la valeur 1 et puis incrémente de 1 print($i);// affiche la valeur 2 print(++$i);// affiche la valeur 3
F.S.O
Opérateurs de comparaison PHP M. Oudghiri Introduction Fonctions Variables Tableaux Chaînes Opérateurs Instructions Formulaires Fichiers Sessions MySql
F.S.O
PHP dispose des opérateurs qui permettent de comparer des expressions. Le résultat retourné est l’une des deux valeurs booléennes : TRUE ou FALSE. Les opérateurs de comparaisons d’expressions arithmétiques. Opérateur signification < inférieur strictement > supérieur strictement <= inférieur ou égale >= supérieur ou égale Les opérateurs suivants s’appliquent à tous les types de variables. Opérateur signification == égale != différent <> différent
Opérateurs logiques PHP M. Oudghiri
PHP dispose d’opérateurs logiques avec lesquels on peut former des expressions de valeur booléenne.
Introduction Fonctions Variables Tableaux
Opérateur Négation
Syntaxe !A
Et binaire
A && B
Et logique
A&B
Ou binaire
A || B
Ou logique
A|B
Ou exclusif
AˆB
Chaînes Opérateurs Instructions Formulaires Fichiers Sessions MySql
F.S.O
Valeur retournée retourne true lorsque A est fausse, et false dans le cas contraire retourne true uniquement lorsque A et B sont vrais. A et B sont toujours évaluées retourne true uniquement lorsque A et B sont vrais. B n’est évaluée que si A est vraie retourne true lorsqu’au moins A ou B est vrai. A et B sont toujours évaluées retourne true lorsqu’au moins A ou B est vrai. B n’est évaluée que si A est fausse retourne true uniquement lorsque un et un seul des opérandes A et B est vrai
Il s’agit de l’opérateur ternaire ? : . Syntaxe : expr1 ? expr2 : expr3 Cette expression est évaluée à expr2 si expr1 est évalué à TRUE, et expr3 si expr1 est évalué à FALSE.
Opérateur de concaténation PHP M. Oudghiri Introduction Fonctions Variables
PHP dispose de deux opérateurs de concaténations de chaînes de caractères : Opérateur . Il retourne la concaténation de ces deux arguments essentiellement de type string.
Opérateur de suppression d’erreur PHP M. Oudghiri Introduction Fonctions Variables Tableaux Chaînes Opérateurs Instructions
Ce code produit un message d’erreur qui correspond à la division par 0. Pour éviter l’affichage des messages d’erreur de PHP dans le navigateur, il suffit de précéder l’appel d’une fonction par le caractère @.
Formulaires Fichiers Sessions MySql
F.S.O
Ainsi, si on remplace print par @print dans ce code, aucun message d’erreur ne sera généré.
$a=5; $b=0; print($a/$b); // Résultat : Warning: Division by zero $a=5; $b=0; @print($a/$b); // Résultat :
Instruction PHP M. Oudghiri Introduction Fonctions Variables
Instruction Une instruction correspond toujours à une action à mener et se termine par un point-virgule.
Tableaux Chaînes Opérateurs Instructions Formulaires Fichiers Sessions MySql
Bloc Par un bloc on désigne une suite d’instructions placées entre accolades. En PHP, les instructions s’exécutent l’une après l’autre. Pour échapper à cette règle, PHP fournit les instructions de contrôle qui définissent l’ordre d’exécution. On en distingue deux types : Instructions de contrôle qui permettent d’effectuer un choix : if ... else et switch. Instructions de contrôle pour réaliser des boucles : do ... while, while et for.
F.S.O
Instruction If PHP M. Oudghiri Introduction Fonctions Variables Tableaux Chaînes Opérateurs Instructions
L’instruction If possède la syntaxe suivante : if(condition1) instruction1 elseif(condition2) instruction2 else instruction3
$nombre=5.4; if($nombre>0) echo $nombre." est positif"; elseif($nombre<0) {echo $nombre." est négatif";} else echo $nombre. "est nul";
Formulaires Fichiers Sessions MySql
conditions 1 et 2 sont des expressions à valeurs booléennes else et elseif sont facultatifs les instructions 1, 2 et 3 peuvent être simples ou des blocs
switch généralise l’instruction if en offrant de multiples choix. Syntaxe : switch (expression) { case constante 1 : liste d instructions 1 case constante 2 : liste d instructions 2 . . . case constante N : liste d instructions N default : liste d instructions }
Instructions Formulaires Fichiers Sessions MySql
L’instruction switch commence par rechercher la première constante égale à la valeur de l’expression. La liste d’instructions correspondante est exécutée, et puis celles correspondantes aux constantes suivantes sont également exécutées jusqu’à la rencontre de la première instruction break. Celle-ci demande de sortir du bloc et donc termine l’exécution de l’instruction switch. On peut remplacer les constantes par des variables.
F.S.O
L’instruction default est facultative. Elle sert à traiter tous les cas non précisés dans la liste "case".
Instruction switch PHP M. Oudghiri
$i=6; switch ($j ){ case 1 :
Introduction Fonctions
case 2 :
Variables Tableaux
case 3 : case 4 :
Chaînes Opérateurs
case 5 : case $i :
Instructions Formulaires
case 7 : Default : }
Fichiers Sessions MySql
$j=1 produit : jour 1 : Lundi jour 2 : Mardi jour 1 : Mercredi jour 1 : Jeudi
$j=6 produit : jour 6 : Samedi //ce cas correspond à // $j=$i //
$j=8 produit : jour 8 inconnu //instruction default est //exécutée //
Instruction while PHP M. Oudghiri Introduction Fonctions Variables Tableaux
Sa syntaxe est : while (condition) liste d’instructions la condition, qui est à valeur booléenne, est d’abord évaluée. Si elle vaut true, les instructions sont exécutées. Dans le cas contraire, l’exécution de while s’arrête.
Chaînes Opérateurs Instructions
? False
Formulaires Fichiers Sessions MySql
-
condition
True ? Instructions
F.S.O
-
Fin de while
//script pour décomposer un entier non nul //en produit de nombres premiers. $n= -35699290; print("n = ".$n." = "); if($n <0){ print ("-"); $n=-$n; } print("1"); $k=2; while ($n!=1 & $n !=0){ if($n%$k ==0){ print ("*".$k); $n /=$k; } else{ $k++; } }
Instruction do ... while PHP M. Oudghiri Introduction Fonctions Variables Tableaux
Contrairement à l’instruction while, la liste d’instructions correspondant à do ... while est d’abord exécutée, puis la condition est évaluée : s’elle vaut true le processus recommence, sinon l’exécution s’arrête. Sa syntaxe est : do liste d’instructions while (condition);
Chaînes Opérateurs Instructions
?
Formulaires Fichiers
-
Instructions
Sessions MySql
?
condition False- Fin de do...while
True liste d’instructions est toujours exécutée au moins une fois indépendamment de la valeur de la condition.
F.S.O
//calcul de pgcd de deux entiers. $n=44730; $m=622125; if($n>$m){ $p=$n; $q=$m; } else{ $p=$m; $q=$n; } do{ $r=$p%$q; $p=$q; $q=$r; } while ($r != 0); print("le pgcd de ".$m." et ".$n." vaut ".$p);
Instruction for PHP M. Oudghiri Introduction Fonctions Variables Tableaux Chaînes Opérateurs Instructions Formulaires
Sa syntaxe est : Expression 1 : peut comfor( Expression 1; Expression porter plusieurs expressions, 2; Expression 3){ séparées par des virgules, de Liste d’instructions déclarations de variables } qu’on initialise (compteurs). Elle est évaluée une seule fois avant d’entrer dans la boucle. Expression 2 : formée par une seul expression booléenne qui conditionne la poursuite de la boucle.
Fichiers Sessions MySql
F.S.O
Expression 3 : peut contenir plusieurs expressions, séparées par des virgules, d’incrémentation. Elle est évaluée à la fin de chaque parcours. //Affiche : for($i=2,$j=2;$i <5;$i++,$j+=$i){ 2*2 vaut 4 $k=$i*$j; 3*5 vaut 15 print($i."*".$j." vaut ".$k." "); } 4*9 vaut 36
Instruction foreach PHP M. Oudghiri Introduction Fonctions
L’instruction foreach permet de parcourir les tableaux. Il ya deux syntaxes possibles : foreach($tableau as $value){ Liste d’instructions }
foreach($tableau as $key => $value){ Liste d’instructions }
A chaque itération, la valeur de l’élément courant est affectée à $value et le pointeur interne du tableau est avancé d’un élément.
A chaque itération, la valeur de la clé et la valeur de l’élément courant sont affectées respectivement à $key et $value, et le pointeur interne du tableau est avancé d’un élément.
Variables Tableaux Chaînes Opérateurs Instructions Formulaires Fichiers Sessions MySql
F.S.O
Instruction Break PHP M. Oudghiri Introduction Fonctions Variables Tableaux Chaînes Opérateurs Instructions Formulaires Fichiers Sessions MySql
F.S.O
Elle est utilisé essentiellement dans l’instruction switch et les boucles while et for. Il permet de sortir de la boucle et passer à l’instruction suivante : for($i=0;$i <=4;$i++){ print ("i = ".$i." "); if($i==2) break; } print ("Fin de la boucle ");
Affiche : i=0 i=1 i=2 Fin de la boucle
Break accepte un paramètre qui indique de combien de niveaux remonter si plusieurs boucles sont imbriquées. $i=1; print("i j k "); while ($i <4){//boucle i for($j=1;$j <4;$j++){//boucle j for($k=1;$k <4;$k++){//boucle k print($i.$j.$k." "); if($k ==2){ echo "k=".$k.":je sors des boucles k,j "; break 2 ;} if($i==3){ echo "i=".$i.":je sors des boucles k,j,i "; break 3;} } } $i++; }
Affiche : ijk 111 112 k = 2 : je sors des boucles k et j 211 212 k = 2 : je sors des boucles k et j 311 i = 3 : je sors des boucles k, j, i
Instruction continue PHP M. Oudghiri Introduction Fonctions Variables Tableaux Chaînes Opérateurs Instructions Formulaires Fichiers Sessions MySql
F.S.O
Elle permet de sauter les instructions situées jusqu’à la fin de la boucle, et de passer à l’itération suivante. for($i=0;$i <=4;$i++){ if($i==2) { echo "je saute i=".$i." "; continue; } print ("i = ".$i." "); }
Affiche : i=0 i=1 je saute i=2 i=3 i=4
L’instruction continue accepte un paramètre qui indique de combien de niveaux remonter si plusieurs boucles sont imbriquées. $i=1; print("i j k "); while ($i <4){//boucle i for($j=1;$j <4;$j++){//boucle j for($k=1;$k <4;$k++){//boucle k if($k ==2){ print("k = ".$k." : je saute ".$i.$j.$k." et $i ->".++$i." "); continue 2 ; } print($i.$j.$k." "); } } $i++; }
Affiche : ijk 111 k = 2 : je saute 112 et $i ->2 221 k = 2 : je saute 222 et $i ->3 331 k = 2 : je saute 332 et $i ->4
Formulaire PHP M. Oudghiri Introduction Fonctions Variables Tableaux Chaînes Opérateurs Instructions Formulaires Fichiers Sessions MySql
Les formulaires assurent une interactivité entre l’internaute et le serveur. Les données saisies et validées dans la page html sont envoyées au serveur en utilisant une des méthodes suivantes : Méthode Get : les données du formulaire seront codées dans l’URL et séparées de l’adresse par (?). Méthode Post : les données du formulaire seront envoyées dans le corps de la requête. L’attribut action permet spécifier le fichier qui traiter, dans le serveur, données saisies dans le mulaire.
de va les for-
Les données envoyées au serveur sont contenues dans des tableaux associatifs, dits superglobaux, appelés $_POST et $_GET, selon la méthode choisie. Les clés de ces tableaux sont les noms associés aux champs par l’attribut name.
F.S.O
Avec extract($_GET) et extract($_POST), la valeur de $_POST[’nom’] sera affectée à la variable $nom.
Exemple de formulaire PHP M. Oudghiri Introduction Fonctions Variables Tableaux Chaînes Opérateurs Instructions Formulaires Fichiers Sessions MySql
F.S.O
Formulaire
Validation –> Votre nom est M. youssefi khalid Votre mot de passe est : a1b2 Vos loisirs : sport, voyage, lecture
Données du Formulaire Votre nom est Votre mot de passe est : Vos loisirs :
Champs à valeurs multiples PHP M. Oudghiri Introduction
Certains éléments de formulaire peuvent accepter plusieurs valeurs comme le cas des cases à cocher et les liste à choix multiples. L’ensemble des valeurs d’un tel élément est envoyé au serveur sous forme de tableau.
Fonctions Variables Tableaux Chaînes Opérateurs Instructions Formulaires Fichiers Sessions MySql
F.S.O
Vos loisirs sont : $v){ echo $v.’ ’;} ?> Vous avez visité les pays suivants : $v){ echo $v.’ ’; } ?>
Formulaire validé -> Vos loisirs sont : Lecture Sport Vous avez visité les pays suivants : Algérie Espagne
Envoi de données dans l’URL PHP M. Oudghiri Introduction Fonctions Variables Tableaux Chaînes Opérateurs Instructions Formulaires Fichiers Sessions MySql
F.S.O
Il est possible de transmettre des données dans l’URL et les récupérer dans le tableau $_GET. Exemple :Le lien fichierCible.php?nom=ali&prenom=youssefi transmet à fichierCible.php les deux valeurs suivantes : $_GET[’nom’]="ali" et $_GET[’nom’]="youssefi"
Transfert de fichier PHP M. Oudghiri Introduction Fonctions
Un formulaire permet aussi d’envoyer un fichier au serveur à l’aide de la balise input de type file. Une telle opération nécessite que form ait l’attribut method à la valeur post et enctype à la valeur multipart/form-data.
Variables Tableaux Chaînes Opérateurs Instructions Formulaires Fichiers Sessions MySql
F.S.O
Comme l’opération d’envoi de fichier peut présenter un problème de sécurité pour un site, l’attribut accept permet de déterminer les types de fichiers acceptés. A l’aide d’un champs caché nommé MAX_FILE_SIZE, on peut limiter la taille des fichiers transférés. Une fois le fichier est envoyé au serveur, il subit le traitement suivant : le fichier arrive sur un dossier temporaire et portant un nom différent. Ce dossier est défini dans php.ini par la directive upload_tmp_dir, et en cas de son absence, php utilise le dossier tmp du système. Le fichier peut être enregistré dans le dossier voulu à l’aide de la fonction move_uploaded_file( "fichierTmp", "fichierFinal") qui retourne true si l’opération est réussi et false sinon.
Transfert fichier PHP M. Oudghiri Introduction Fonctions Variables Tableaux Chaînes
L’envoie d’un fichier conduit à la création d’un tableau associatif multidimensionnel contenant les informations suivantes : $_FILES["fichier"]["name"] : contient le nom que le fichier possédait avant l’envoie. $_FILES["fichier"]["type"] : contient le type du fichier. $_FILES["fichier"]["size"] : contient la taille du fichier en octet.
Opérateurs Instructions Formulaires Fichiers Sessions MySql
F.S.O
$_FILES["fichier"]["tmp_name"] : contient le nom temporaire que le serveur a attribué au fichier. $_FILES["fichier"]["error"] : donne le code d’une éventuelle erreur. valeur 0 : transfert réussi. valeur 1 : taille du fichier dépasse celle autorisée dans le fichier php.ini. valeur 2 : taille du fichier dépasse celle autorisée dans le champs MAX_FILE_SIZE. valeur 3 : fichier a été téléchargé partiellement. valeur 4 : fichier non téléchargé.
Exemple de transfert de fichier PHP M. Oudghiri Introduction Fonctions Variables Tableaux Chaînes Opérateurs Instructions Formulaires Fichiers Sessions MySql
F.S.O
Clés et valeurs du tableau $_FILES "; foreach($_FILES["fichier"] as $cle => $valeur){ echo "clé : $cle valeur : $valeur "; } $result=move_uploaded_file($_FILES["fichier"]["tmp_name"],"doc.pdf"); if($result==TRUE){ echo "Le transfert est réalisé !"; } else{echo "Erreur de transfert numéro ".$_FILES["fichier"]["error"];} ?>
Création, ouverture et fermeture d’un fichier PHP M. Oudghiri Introduction Fonctions Variables Tableaux
Création et ouverture d’un fichier La fonction fopen(nom,mode) permet d’ouvrir le fichier, ou le créer s’il n’existe pas. Elle retourne un identifiant du fichier, ou false en cas d’échec. Le paramètre mode détermine le type d’accès au fichier
Chaînes
r : ouverture en lecture seulement.
Opérateurs
w : ouverture en écriture seulement.
Instructions Formulaires Fichiers Sessions MySql
a : ouverture en écriture seulement avec ajout du contenu à la fin du fichier. r+ ou w+ : ouverture en lecture et écriture. a+ : ouverture en lecture et écriture avec ajout du contenu à la fin du fichier. Avec les modes : w, a, w+, a+, le fichier sera créé s’il n’existe pas. Fermeture d’un fichier
F.S.O
La fonction fclose($idFichier) ferme le fichier dont l’identifiant est $idFichier.
Fichier : lecture et écriture PHP M. Oudghiri Introduction
Ecriture dans un fichier La fonction fwrite($idFichier,$chaine) écrit le texte contenu dans $chaine dans le fichier d’identifiant $idFichier.
Fonctions Variables Tableaux Chaînes Opérateurs Instructions Formulaires Fichiers Sessions MySql
F.S.O
Lecture d’un fichier fread($idFichier,$n) : lit le fichier d’identifiant $idFichier jusqu’à $n octets (i.e $n caractères). fgets($idFichier,$n) : lit le fichier d’identifiant $idFichier. La lecture s’arrête après $n caractères ou si \n est rencontré. fgetc($idFichier) : lit le fichier caractère par caractère. $idFichier=fopen(’teste.txt’,’a+’); ##Création et ouverture du teste.txt dans le dossier racine. ##L’identifiant du fichier est mémorisé dans la variable $idFichier fwrite($idFichier,"J’écrit la première ligne \n"); //écriture en première ligne fwrite($idFichier,"J’écrit la deuxième ligne \n"); //écriture en deuxième ligne (mode a+) $contenu = nl2br(htmlentities(fread($idFichier,filesize(’teste.txt’)),ENT_QUOTES,’utf-8’)); ## la fonction nl2br transforme \n en ## la fonction htmlentities remplace tous les caractères spéciaux par leurs équivalents en html print($contenu); while($ligne=fgets($idFichier,30)){print($ligne).’ ’;} ##Ces 2 instructions affichent "J’écrit la première ligne J’écrit la deuxième ligne" fclose($idFichier);
Pointeurs PHP M. Oudghiri Introduction Fonctions
seek($idFichier,$n) Elle positionne un pointeur à la position $n du fichier d’identifiant $idFichier à partir du début. Elle returne true, ou -1 en cas d’échec.
rewind($idFichier) On l’utilise pour remettre le pointeur au début du fichier d’identifiant $idFichier. Elle retourne false en cas d’échec.
Formulaires Fichiers Sessions MySql
F.S.O
ftell($idFichier) Elle retourne la position actuelle du pointeur par rapport au début du fichier. $idFichier=fopen(’teste.txt’,’r+’); fwrite($idFichier,"abc def ghi\n jkl mno pqr"); fseek($idFichier,2); echo fread($idFichier,4); ##Affiche "c de" echo " position :".ftell($idFichier);##Affiche "position :6" rewind($idFichier); echo " ".fread($idFichier,filesize(’teste.txt’)); ##Affiche "abc def ghi jkl mno pqr" fclose($idFichier);
Autres fonctions PHP M. Oudghiri Introduction Fonctions Variables
Lecture de la totalité d’un fichier readfile($fichier) : Affiche le contenu du fichier et retourne sa taille en octes. file($fichier) : retourne un tableau dont les éléments sont constitués par les lignes du fichier.
Tableaux Chaînes
Ces 2 fonctions ne demandent pas l’utilisation de fopen et fclose.
Opérateurs Instructions
Copier un fichier dans un autre
Formulaires Fichiers Sessions
copy($fichier1,$fichier2) permet de sauvegarder le contenu de $fichier1 dans $fichier2. Elle retourne une valeur booléenne.
MySql
Renommer un fichier rename($fichier1,$fichier2) permet de renommer $fichier1 en $fichier2. Elle retourne une valeur booléenne. Supprimer un fichier
F.S.O
unlink($fichier) permet de supprimer $fichier. Elle retourne une valeur booléenne.
Autres fonctions PHP M. Oudghiri Introduction Fonctions Variables
Existence d’un fichier file_exists($fichier) retourne une vakeur booléenne selon que le fichier existe ou non.
Tableaux Chaînes Opérateurs
Taille d’un fichier filesize($fichier) retourne la taille en octets de $fichier.
Instructions Formulaires Fichiers Sessions MySql
Type : fichier, dossier filetype($fichier) retourne file s’il s’agit d’un fichier ou dir si $fichier est un dossier. Date de dernière modification d’un fichier filemtime($fichier) retourne timestamp de dernière modification de $fichier.
F.S.O
C’est quoi une session PHP M. Oudghiri Introduction Fonctions
En php, la session est un mécanisme qui permet de conserver certaines valeurs associées au même utilisateur. En effet, ces valeurs de session sont stockées sur le serveur pour une durée déterminée, et elles sont accessibles depuis toutes les pages du site.
Fonctionnement Ouverture d’une session à l’aide de la fonction session_start() au début de chaque page où des valeurs de sessions peuvent être utilisées. Un identifiant de session est alors attribué à chaque utilisateur. Il est transmis d’une page à une autre.
MySql
Il est possible d’associer plusieurs valeur à la session en utilisant le tableau super-global $_SESSION. Ces valeurs sont stockées dans un fichier sur le serveur. Ces valeurs sont accessibles depuis toutes les pages du site commençant par session_start();
F.S.O
Fermeture de la session et destruction des valeurs de session.
Exemple et fonctions de session PHP M. Oudghiri Introduction Fonctions Variables Tableaux
session_start() : ouvre une session
Chaînes
session_id() : retourne l’identifiant de la session
Opérateurs
session_destroy() : détruit la session
Instructions Formulaires Fichiers Sessions MySql
F.S.O
session_unset() : détruit toutes les variables de session ’.session_id();## affiche frttjhmghbpovf2vuq05b68fv1 if(isset($_SESSION[’a’]))## ne sera pas exécuté car $_SESSION[’a’] est détruite echo ’ $_SESSION[á´]=’.$_SESSION[’a’]; session_destroy();## détruit la session echo ’ ’.session_id();## n’affiche rien car la session est détruite ?>
Création d’une Base de données PHP M. Oudghiri Introduction Fonctions Variables Tableaux Chaînes Opérateurs Instructions Formulaires Fichiers Sessions MySql
F.S.O
La création d’une base de données se fait à l’aide de PhpMyAdmin.
Création d’une table PHP M. Oudghiri Introduction
Une fois la base de données MasElec est créée, on peut créer une table en fournissant :
Fonctions Variables Tableaux Chaînes Opérateurs Instructions Formulaires Fichiers Sessions MySql
F.S.O
Le nom de la table. Le nombre de ses attributs.
Création d’une table PHP M. Oudghiri Introduction Fonctions Variables Tableaux Chaînes
Colonne : nom de l’attribut Type : numérique, alphanumérique, date, ... Taille : longueur de la donnée en octets. Défaut : valeur par défaut Interclassement : Jeu de caractères Attributs : binaire, non signé, ...
Opérateurs Instructions Formulaires Fichiers Sessions MySql
F.S.O
Primaire : clé de la table : auto-incrément : incrémentation automatique
Fonctionnement PHP M. Oudghiri Introduction Fonctions Variables
L’accès aux données d’une base suit les étapes suivantes :
Tableaux Chaînes
Ouverture de la connexion sur le serveur MySql
Opérateurs
Sélection de la base de données
Instructions Formulaires
Définition de la requête
Fichiers
exécution de la requête
Sessions MySql
Extraction des données Fermeture de la connexion
F.S.O
Connexion au serveur et sélection de la base PHP M. Oudghiri Introduction Fonctions Variables Tableaux Chaînes Opérateurs Instructions
mysql_connect("hostname", "username", "password") Établit la connexion au serveur. hostname : nom du serveur username : login pour accéder à la base password : mot de passe associé au login Elle retourne l’identifiant de type ressource si la connexion est réussie, et false sinon.
Formulaires Fichiers
mysql_select_db ("database", "resource")
Sessions MySql
Permet de sélectionner la base de données database : nom de la base de données ressource (Facultatif) : identifiant de la connexion
F.S.O
Requêtes PHP M. Oudghiri Introduction
Exécution d’une requête L’envoie d’une requête SQL à la base de données sélectionnée se fait à l’aide de la fonction mysql_query().
Fonctions Variables
Insertion de données
Tableaux Chaînes Opérateurs Instructions
Syntaxe : $requete="INSERT INTO personne (id,nom,prenom,anneeNaiss) VALUE (”,’toto’,’tati’,’1988’)"; mysql_query($requete));
Formulaires Fichiers Sessions MySql
La fonction mysql_query() retourne TRUE si la requête est réussie, et FALSE sinon. Modification de données Syntaxe : $requete="UPDATE personne SET prenom=’tata’, anneeNaiss=1991 WHERE id=1"; mysql_query($requete);
F.S.O
La fonction mysql_query() retourne TRUE si la requête est réussie, et FALSE sinon.
Requêtes PHP M. Oudghiri Introduction Fonctions Variables
Suppression de données
Tableaux Chaînes
Syntaxe :
Opérateurs Instructions
$requete="DELETE FROM personne WHERE id=1"; mysql_query($requete);
Formulaires Fichiers Sessions MySql
F.S.O
La fonction mysql_query() retourne TRUE si la requête est réussie, et FALSE sinon.
Requêtes Sélection de données
PHP M. Oudghiri Introduction Fonctions
Syntaxe : $requete="SELECT nom, prenom FROM personne WHERE prenom=’ali’"; $resultat=mysql_query($requete) ;
Variables Tableaux Chaînes
La fonction mysql_query() retourne une ressource si la requête est réussie, et FALSE sinon.
Opérateurs Instructions Formulaires
La fonction mysql_num_rows() retourne le nombre d’enregistrement dans la ressource.
Fichiers Sessions MySql
$result contient deux enregistrements mysql_num_rows($result) retourne 2.
F.S.O
L’affichage des résultats se fait à l’aide des fonctions suivantes: mysql_fetch_row() : retourne une ligne d’enregistrement sous forme de tableau indexé numériquement. mysql_fetch_assoc() : retourne une ligne d’enregistrement sous forme de tableau dont les clés sont les attributs de la
Requêtes Sélection de données
PHP M. Oudghiri Introduction Fonctions Variables
$requete="SELECT nom, prenom FROM personne WHERE prenom=’ali’"; $resultat=mysql_query($requete) ; while($ligne=mysql_fetch_row($resultat)){ print($ligne[0].’ ’.$ligne[1].’ ’); }
$requete="SELECT nom, prenom FROM personne WHERE prenom=’ali’"; $resultat=mysql_query($requete) ; while($ligne=mysql_fetch_assoc($resultat)){ print($ligne[’nom’].’ ’.$ligne[’prenom’].’ ’); }
mysql_free_result($resulta) permet d’effacer le résultat de la mémoire pour éviter une saturation de la zone mémoire.
MySql
Fermeture de la connexion mysql_close() ferme la connexion Mysql. Syntaxe :
F.S.O
Appel d’un fichier php PHP M. Oudghiri Introduction Fonctions Variables
Dans un site, il est conseillé de mettre les fonctions et les constantes dans un fichier séparé afin de pouvoir les utiliser dans d’autre fichiers php. L’appel d’un tel fichier se fait avec include("NomDuFichier") ou require("NomDuFichier").
Tableaux Chaînes Opérateurs Instructions Formulaires Fichiers Sessions MySql
F.S.O
Redirection du navigateur PHP M. Oudghiri Introduction Fonctions Variables Tableaux Chaînes Opérateurs Instructions Formulaires Fichiers Sessions MySql
F.S.O
La fonction header() permet de rediriger le navigateur vers une autre URL passée en paramètre. L’appel de cette fonction doit être fait avant qu’aucun contenu HTML ne soit envoyé. header(’Location: http://www.google.fr’);