Département Technologie de l’Information et de la Communication Internet Département Technologie de l’Information et de la Communication
Département Technologie de l’Information et de la Communication Sommaire PHP. Département Technologie de l’Information et de la Communication
Département Technologie de l’Information et de la Communication PHP Département Technologie de l’Information et de la Communication
Département Technologie de l’Information et de la Communication Historique (1/3) 1994: créé par Rasmus Lerdorf pour contrôler le nombre des internautes visitant son site. Début 1995: mise en service de la première version de PHP appelée Personal Home Page : moteur d'analyse syntaxique, quelques macros spéciales, utilitaires communément utilisés dans les pages persos. Milieu 1995: PHP/FI (Form Interpreter) : formulaires, support pour mySQL, Département Technologie de l’Information et de la Communication
Département Technologie de l’Information et de la Communication Historique (2/3) Fin 1997: réécriture complète de l'analyseur par Z. Suraski et A. Gutmans combinaison avec Apache et MySQL: grand succès (solution entièrement libre et gratuite) support des serveurs IIS et PWS de Microsoft, … support des bases de données Oracle, Ingres, Interbase, PostGreSQL, PHP 3 (PHP Hypertext PreProcessor) Département Technologie de l’Information et de la Communication
Département Technologie de l’Information et de la Communication Historique (3/3) Fin 1999: nouvelle version: PHP 4: support du type booléen, support pour Java et XML, support pour FTP, … version la plus répandue dans le monde aujourd'hui. Octobre 2001: plus de 1 000 000 développeurs en PHP. 2004: sortie de la dernière version PHP 5. Département Technologie de l’Information et de la Communication
Département Technologie de l’Information et de la Communication Caractéristiques (1/2) Les +: un logiciel libre: gratuité. un langage de script: simplicité. nombreuses fonctions intégrées: facilité. un pré processeur hypertexte exécuté côté serveur: non lisibilité du code côté PHP client. indépendant du système d'exploitation: portabilité. nombreux supports (serveurs Web et BDD): ouverture. Département Technologie de l’Information et de la Communication
Département Technologie de l’Information et de la Communication Caractéristiques (2/2) Les –: gestion automatique des types de données (masquage): incompréhensions et difficultés de débogage. débogage algorithmique peu aisé. Département Technologie de l’Information et de la Communication
PHP face à la concurrence Choix d'un langage de script: Rapidité CGI PHP Perl Facilité de codage ASP Accessibilité Département Technologie de l’Information et de la Communication
Département Technologie de l’Information et de la Communication Qu'est-ce que PHP ? (1/3) Un langage de script: langage de programmation spécialisé dans la génération de code (HTML principalement) : bibliothèques de fonctions de manipulation d'images, outils de traitement de fichiers, outils d'accès aux bases de données, création de fichiers PDF, … lignes de programmation insérées dans le source d'un fichier texte et interprétées par la machine qui exécute le script, extension des fichiers: php, php3 ou php4… Département Technologie de l’Information et de la Communication
Département Technologie de l’Information et de la Communication Qu'est-ce que PHP ? (2/3) Organisation: fichiers = programmes, intégration du PHP au cœur des pages HTML: transformation des pages HTML sur le serveur, ajout d'un comportement dynamique. ensemble d'instructions dont les zones non encadrées par une balise particulière sont intégralement recopiées dans le fichier de sortie un fichier .php peut très bien ne contenir que du code HTML (aucune modification du code) ou PHP (code entièrement généré). Département Technologie de l’Information et de la Communication
Département Technologie de l’Information et de la Communication Qu'est-ce que PHP ? (3/3) Le langage de programmation: écrit en C. Fonctionnement: le client interroge le serveur Web (demande d'une page), le serveur demande à PHP d'interpréter le code de la page, PHP renvoie le code HTML généré au serveur qui l'insère dans la page, le serveur renvoie la page HTML au client. Département Technologie de l’Information et de la Communication
Département Technologie de l’Information et de la Communication Le code Syntaxe PHP: premier code PHP: <html> <head> <title>Ma page HTML avec du code PHP</title> </head> <body> <? echo "Ceci est ma première page PHP !"; ?> </body> </html> utilisation des balises <? et ?>. Département Technologie de l’Information et de la Communication
Département Technologie de l’Information et de la Communication Le code Syntaxe PHP: les balises délimitant les scripts PHP: délimiteur de fin d'instruction: le caractère ";". l'instruction echo affiche le texte présent entre les guillemets. Ouverture Fermeture <? ?> <% %> <?php <script language="php"> </script> Département Technologie de l’Information et de la Communication
Département Technologie de l’Information et de la Communication Les variables (1/8) Règles sur les noms: 1er caractère: le symbole "$". 2ème caractère: alphabétique (minuscule ou majuscule) ou "_" (souligné). caractères suivants: alphanumériques ou "_" pertinents et explicites (éviter $a ou $tmp), pas de limite de longueur. Département Technologie de l’Information et de la Communication
Département Technologie de l’Information et de la Communication Les variables (2/8) Exemple d'utilisation de variables: <html> <head> <title>Ma page deuxième page PHP</title> </head> <body> <? $a = 1; $b = 2; echo 'La somme de '.$a.' + '.$b.' vaut '.($a+$b); ?> </body> </html> Département Technologie de l’Information et de la Communication
Département Technologie de l’Information et de la Communication Les variables (3/8) Le ".": opérateur de concaténation. Différence entre les simples quottes ' et les doubles quottes ": PHP n'analyse pas ce qui est écrit entre simples quottes: $nom = Dupont; echo 'bonjour M. $nom'; affichera : bonjour M. $nom PHP analyse le contenu entre des doubles quottes: echo "bonjour M. $nom"; affichera : bonjour M. Dupont Département Technologie de l’Information et de la Communication
Les variables (4/8) Les opérateurs arithmétiques: Les opérateurs de comparaison: ==, !=, <, >, <=, >= Opérateur arithmétique + - * / % Département Technologie de l’Information et de la Communication
Département Technologie de l’Information et de la Communication Les variables (5/8) Déclaration et initialisation: pas de déclaration nécessaire : instanciation à la première utilisation, le type change en fonction du contenu stocké, types scalaires: chaîne, entier, booléen et à virgule flottante. types composés: tableaux et objets. exemples d'affectations de valeurs: $Nom = "esigelec"; $Compteur = 0; $Solde = 975.50; Département Technologie de l’Information et de la Communication
Département Technologie de l’Information et de la Communication Les variables (6/8) Suppression de variables: fonction unset(): exemple: unset($Nom); //supprime la variable $Nom Département Technologie de l’Information et de la Communication
Département Technologie de l’Information et de la Communication Les variables (7/8) Les constantes: exemple: define("CouleurCiel", "Bleu"); CouleurCiel vaut Bleu. remarque: pas de "$" devant le nom de la constante. Département Technologie de l’Information et de la Communication
Département Technologie de l’Information et de la Communication Les variables (8/8) Tableaux 1 dimension: $tableau[0] = 1; // création d’un tableau, la première valeur est 1 Tableaux 2 dimensions: il suffit de mettre un second indice au moment de l'affectation. $tableau[0][0] = 1; // création d’un tableau, la première valeur est 1 Navigation dans les éléments du tableau: next() , prev() et each(). Nombre d'éléments d'un tableau: count(). Tri des tableaux: asort(), ksort(), sort(), … Département Technologie de l’Information et de la Communication
Variables d'environnement (1/2) Dans une application, un élément fondamental est l’utilisation des variables d'environnement du serveur: avec PHP toutes les variables d'environnement du serveur sont automatiquement reprises dans les scripts PHP en tant que variables globales: il suffit de les utiliser directement dans le code. Département Technologie de l’Information et de la Communication
Variables d'environnement (2/2) PHP 4 / 5 Contenu du tableau $_GET variables passées par méthode GET $_POST variables passées par méthode POST $_COOKIE variables passées via cookies $_FILES informations fichiers téléchargés par méthode POST $_SESSION variables de session Département Technologie de l’Information et de la Communication
Les variables issues de formulaires (1/2) les variables sont issues de formulaires HTML, elles correspondent aux différents champs positionnés entre les balises <form> et </form> de ce formulaire, la page qui reçoit ces variables est celle qui est désignée par l'attribut action de la balise <form>, exemple: <html> <form action="test.php" method="post" > Nom : <input type="text" name="nom"> <input type="submit" value="Envoyer"> </form> </html> Département Technologie de l’Information et de la Communication
Les variables issues de formulaires (2/2) Tableaux: $_GET $_POST exemple: $nom = $_POST[’toto’] echo $nom Département Technologie de l’Information et de la Communication
Département Technologie de l’Information et de la Communication Tests Si une condition est vérifiée alors les instructions sont exécutés sinon (alternative facultative) d’autres instructions sont exécutées: syntaxe: if ( condition1 ) { Actions 1 } elseif ( condition2 ) Actions 2 else Actions 3 exemple: if ($a==$b) { echo "A est égal à B"; } elseif ($a > $b) echo "A est supérieur à B"; else echo "A est inférieur à B"; Département Technologie de l’Information et de la Communication
Département Technologie de l’Information et de la Communication Choix multiple Plusieurs conditions successives sur la valeur d'une seule variable: utilisation de l'instruction switch, l'instruction break est primordiale à la fin de chaque bloc case, sinon les conditions suivantes sont vérifiées et exécutées, exemple: switch ($a){ case $b: echo "A est égal à B"; break; case >$b: echo "A est supérieur à B"; break; default: echo "A est inférieur à B"; } Département Technologie de l’Information et de la Communication
Département Technologie de l’Information et de la Communication Boucles (1/3) La boucle for (nombre d'itérations connu): for (expr1; expr2; expr3) { instructions // éviter de modifier l'indice s'il existe } La boucle while (nombre d'itérations inconnu): while ( condition ) instructions; Département Technologie de l’Information et de la Communication
Département Technologie de l’Information et de la Communication Boucles (2/3) La boucle do…while: do { instructions; } while (condition); Département Technologie de l’Information et de la Communication
Département Technologie de l’Information et de la Communication Boucles (3/3) Exemples: for ($i = 1; $i <= 10; $i++) { echo "- $i -"; } $i=1; do $i++; } while ($i <= 10); $i=1; while ($i <= 10) { echo "- $i -"; $i++; } Département Technologie de l’Information et de la Communication
Département Technologie de l’Information et de la Communication Fonction each() Fonctions étroitement liées aux boucles: permet de parcourir tous les éléments d'un tableau sans se soucier des bornes, lorsque la fin du tableau est atteinte, each() retourne false, retourne la combinaison clé-valeur du tableau passé en paramètre, exemple: while ($var = each($tableau)) { echo "$var[0] : $var[1]"; } l'indice est affecté au premier élément de $var et la valeur au deuxième élément. Département Technologie de l’Information et de la Communication
Département Technologie de l’Information et de la Communication Les fonctions La syntaxe de déclaration s’appuie sur le mot clé function, suivi du nom de la fonction, puis les paramètres éventuels, exemple: function bonjour() { echo "Bonjour" ; } Affiche simplement le texte. Pas de valeur de retour, c'est une procédure. Appel : bonjour(); function bonjourbis() { return "Bonjour" ; } Renvoie le texte sans l'afficher. Utilisation de return pour la valeur de retour. Appel : echo bonjourbis(); Département Technologie de l’Information et de la Communication
Département Technologie de l’Information et de la Communication Fichiers Même gestion qu'en C. Utilisation des fonctions: fopen() feof() fgets() fputs() fclose() Département Technologie de l’Information et de la Communication
Département Technologie de l’Information et de la Communication Quelques fonctions … Les dates: date() exemple: echo date("d-m-Y"); // affiche : "12-12-2000« Chaîne de caractère: strlen (chaîne) retourne la taille de la chaîne. strtolower | strtoupper (chaîne) retourne la chaîne passée en paramètres en minuscules (resp. majuscules). Département Technologie de l’Information et de la Communication
Département Technologie de l’Information et de la Communication Envoyer un mél Il existe une méthode PHP permettant d’envoyer un mail directement (sans gestionnaire de courrier): la fonction mail nécessite au moins trois paramètres : le destinataire, l’objet du message, le corps du message. exemple : <? mail("dupont@mondomaine.fr", "Objet du mail","Corps du mail"); ?> ce code enverra un mail à dupont@mondomaine.fr avec comme sujet Objet du mail, et comme corps Corps du mail. Département Technologie de l’Information et de la Communication
Département Technologie de l’Information et de la Communication Références www.php.net Département Technologie de l’Information et de la Communication