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

PHP Emmanuel Nauer Université de Metz.

Présentations similaires


Présentation au sujet: "PHP Emmanuel Nauer Université de Metz."— Transcription de la présentation:

1 PHP Emmanuel Nauer Université de Metz

2 Université de Metz - Emmanuel Nauer - 2001
Plan Introduction Pages dynamiques / statiques Historique Description générale Principes PHP vs. langages de script, langage C, … la concurrence Le langage PHP Syntaxe, constantes, variables, structure de contrôle, interfaçage avec les bases de données, … Conclusion Université de Metz - Emmanuel Nauer

3 Université de Metz - Emmanuel Nauer - 2001
Introduction Université de Metz - Emmanuel Nauer

4 Université de Metz - Emmanuel Nauer - 2001
Introduction Différents types de pages web Pages statiques Page HTML (langage de présentation de documents) fixe  Contenu indépendant d’un quelconque paramètre Utilisation du protocole HTTP pour une communication client/serveur Fichier interprété — pour l’affichage — par une ressource logicielle (Internet Explorer, Netscape, …) sur le poste client. Université de Metz - Emmanuel Nauer

5 Université de Metz - Emmanuel Nauer - 2001
Introduction Échange de pages web statiques Université de Metz - Emmanuel Nauer

6 Université de Metz - Emmanuel Nauer - 2001
Introduction Différents types de pages web Pages dynamiques : Page générée à la demande sur le serveur. PHP utilise un moteur qui génère une page HTML en fonction d’un fichier textuel contenant une liste de directives (script). Le résultat (page HTML) dépend, dans la plupart des cas, d’un ensemble de paramètres. Facteurs impliqués dans l’interprétation Côté client : passation de variables par formulaire, URL, ou cookies. Coté serveur : connexion avec des bases de données via l’exécution de requêtes SQL  Exécution du code en fonction des valeurs retournées. Université de Metz - Emmanuel Nauer

7 Exemple d'introduction
<HTML> <HEAD> <TITLE>Exemple PHP</TITLE> </HEAD> <BODY> <?php echo "Bonjour, je suis un script PHP!"; ?> </BODY> </HTML> Université de Metz - Emmanuel Nauer

8 Université de Metz - Emmanuel Nauer - 2001
Moteur Quid ? Ressource logicielle qui effectue des opérations bien précises. Dans le cadre de PHP : il s’agit d’interpréter les directives données dans les scripts PHP. le moteur PHP est couplé au serveur web (HTTP). possibilité d’interagir avec d’autres moteurs ou serveurs : MySQL pour la gestion de bases de données, par exemple. Exemple typique d’une interaction avec un serveur web Problème à résoudre de type achat en ligne. Acquisition (sur le web) d’un jouet pour le bain. Connexion au site ParadisDuJouet.com La page d’accueil est la même pour tous les internautes. Université de Metz - Emmanuel Nauer

9 Université de Metz - Emmanuel Nauer - 2001
Moteur Étapes de l’achat en ligne Renseignements des facteurs relatifs à mon achat Remplissage du formulaire avec une demande de liste des canards pour le bain Validation du formulaire Envoi des paramètres au serveur Traitement de la demande par le serveur Réception par le serveur des valeurs et du script à exécuter Connexion (dans le script) à la base de données des produits Exécution d’une requête paramétrée (par la demande) Stockage des résultats en mémoire. Génération d’une page HTML contenant la mise en forme des résultats. Université de Metz - Emmanuel Nauer

10 Université de Metz - Emmanuel Nauer - 2001
Moteur Étapes de l’achat en ligne Envoi de la page générée par le serveur vers le client Réception de la page HTML correspondant à la demande liste de références des produits appartenant à la catégorie : canard pour le bain. Université de Metz - Emmanuel Nauer

11 Université de Metz - Emmanuel Nauer - 2001
Introduction Échange de pages web dynamiques Université de Metz - Emmanuel Nauer

12 Université de Metz - Emmanuel Nauer - 2001
Historique Université de Metz - Emmanuel Nauer

13 Université de Metz - Emmanuel Nauer - 2001
Historique 1994 Création de PHP par Rasmus Lerdorf baptisé originellement Personnal Home Page. pour conserver la trace des utilisateurs venant consulter son curriculum vitae en ligne. 1995 Version 2. 0 : Hypertext PreProcessor. Possibilité de : récupérer les données soumises par un formulaire. communiquer avec une base de données. d’effectuer des calculs (fonctions mathématiques) à la volée. Première version publique crédible pour le développement web. Université de Metz - Emmanuel Nauer

14 Université de Metz - Emmanuel Nauer - 2001
Historique 1996 Mise en ligne de Supercuts par Clear Inks dans lequel PHP est utilisé pour créer un système de navigation personnalisée. Participation de Zeev Suraski et Andi Gutmans (Zend) au projet, afin de corriger les nombreux bugs existants sites web. Université de Metz - Emmanuel Nauer

15 Université de Metz - Emmanuel Nauer - 2001
Historique 1997 Moteur d'analyse Zend : + de performances, + de librairies. sites web. 1998 Version 3.0 1999 sites utilisaient le langage PHP. 2001 PHP 3 ou PHP 4. sites web. Université de Metz - Emmanuel Nauer

16 Description et principes de PHP
Université de Metz - Emmanuel Nauer

17 Université de Metz - Emmanuel Nauer - 2001
CGI Quid ? Common Gateway Interface. Interface d’accès à des programmes exécutables. Programmes : compilés : langage C, C++, … interprétés : scripts Pers, shell, … Le programme, exécuté par le serveur, génère du code HTML. Création de flux sur le serveur et écriture de chaînes de caractères dans ce flux. Université de Metz - Emmanuel Nauer

18 Université de Metz - Emmanuel Nauer - 2001
CGI Avantages Très rapide. Utilisation du moyen de développement le plus adapté. Inconvénients Sécurité (lié aux accès système). Nécessite une bonne connaissance de programmation (C, Perl, shell, …). Université de Metz - Emmanuel Nauer

19 Positionnement de PHP / CGI
Langage de programmation orienté vers la génération de code HTML Langage de script qui s'inclue dans les pages HTML. But de PHP Faciliter développement de pages web dynamiques. Fournir un ensemble de fonctions appropriées à ce développement. Programmation en PHP ? = insertion de code PHP dans des documents HTML. Université de Metz - Emmanuel Nauer

20 Université de Metz - Emmanuel Nauer - 2001
Syntaxe Passage de HTML à PHP Renommez un fichier .html en .php: il fonctionne ! Balises de script PHP <? ?> <?php ?> <SCRIPT LANGUAGE="php"> </SCRIPT> <% %> Remarques La deuxième est la plus utilisée. Ces balises sont paramétrables (possibilité d'en définir d'autres). Université de Metz - Emmanuel Nauer

21 Exemple d'introduction
<HEAD> <TITLE>Exemple PHP</TITLE> </HEAD> <BODY> <?php echo "Bonjour, je suis un script PHP!"; ?> </BODY> </HTML> Université de Metz - Emmanuel Nauer

22 Positionnement de PHP / CGI
Interprétation du code PHP PHP = langage non compilé (pas de fichiers binaires exécutables)  interprété par un moteur PHP. Paramétrage du déclenchement de l'interpréteur Liste d'extensions (en général .php, .php3 ou .php4). Possibilité de paramétrer le déclenchement pour les .html ou .htm. Dans ce cas, il se déclenche dès qu’un fichier .html ou .htm est appelé même s’il ne contient pas de script. Université de Metz - Emmanuel Nauer

23 Positionnement de PHP / CGI
Fonctionnement de l’interpréteur Dès que l’interpréteur se déclenche, il recherche des balises spécifiques pour reconnaître le code PHP. Zones non PHP  ne sont pas interprétées. L’interpréteur gère : l’accès système sur serveur. la réservation mémoire. Université de Metz - Emmanuel Nauer

24 Université de Metz - Emmanuel Nauer - 2001
Zend Quel rapport avec PHP ? PHP lié au developpement du projet Zend à partir de PHP 2.0 (Zeev Suraski et Andi Gutmans). Langage plus généraliste que PHP : il permet de générer quelque soit l’O.S. un fichier à partir d’autres fichiers. L’interpréteur de PHP 4.0 est basé sur celui de Zend. Par rapport à l’interpréteur de PHP 3.0, Zend ajoute des utilitaires (optimiseur de code, gestionnaire de mémoire du serveur). Un compilateur PHP doit sortir et permettra de faire des exécutables à partir de scripts PHP  gain en efficacité ! Université de Metz - Emmanuel Nauer

25 Université de Metz - Emmanuel Nauer - 2001
Environnement PHP Systèmes d’exploitation Unix Linux Macintosh Windows 95/98, NT, 2000 Serveurs web Apache. Personnal Web Server. Internet Information Server. Iplanet Web Server. Xitami. Université de Metz - Emmanuel Nauer

26 Université de Metz - Emmanuel Nauer - 2001
La concurrence ASP (Microsoft) Langage basé sur VBScript (Visual Basic). Compatibilité : uniquement avec une plate-forme NT et ses serveurs web : PWS et IIS. Il existe cependant une émulation pour plate forme Linux/ Unix. Uniquement compatible avec ODBC. Exécution du code est lent. Aisé à programmer. Université de Metz - Emmanuel Nauer

27 Université de Metz - Emmanuel Nauer - 2001
La concurrence Perl Langage de script interprété. Compatible NT et Linux / Unix. Réservé à des programmeurs chevronnés. Peu lisible. Moyennement rapide. ColdFusion Uniquement compatible NT. Produit coûteux. Université de Metz - Emmanuel Nauer

28 Université de Metz - Emmanuel Nauer - 2001
La concurrence Atouts de PHP Rapidité Fiabilité Coût (gratuit) Lisibilité du code Temps d’apprentissage faible Portabilité : disponible sur toutes les plate-formes serveurs Installation et gestion simplifiée du serveur Université de Metz - Emmanuel Nauer

29 Université de Metz - Emmanuel Nauer - 2001
Le langage PHP Université de Metz - Emmanuel Nauer

30 Université de Metz - Emmanuel Nauer - 2001
Syntaxe Très inspiré de C, C++, Perl. Séparateur d'instruction point virgule : ; Commentaires // Sur une ligne comme en C++ /* Sur plusieurs lignes comme en C et C++ */ # Sur une ligne comme en Shell Unix Université de Metz - Emmanuel Nauer

31 Université de Metz - Emmanuel Nauer - 2001
Constantes Université de Metz - Emmanuel Nauer

32 Université de Metz - Emmanuel Nauer - 2001
Constantes Notation Format : [a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]* Sensible à la casse Portée globale. Définition define("NOM", "valeur"); <?php define("CONSTANTE", "Hello wold"); echo CONSTANTE; // affiche " Hello wold" echo Constante; // affiche "Constante" ?> ?> Université de Metz - Emmanuel Nauer

33 Constantes prédéfinies
__FILE__ nom du fichier exécuté. __LINE__ numéro de la ligne exécutée. PHP_VERSION par exemple : PHP_OS par exemple Linux, SunOS, WIN32, WINNT. TRUE FALSE E_ERROR dénote une erreur. E_WARNING dénote une erreur mais l'exécution continue. E_NOTICE dénote une erreur mais l'exécution continue. E_ALL toutes les E_* rassemblées en une seule Université de Metz - Emmanuel Nauer

34 Exemple d’utilisation de __FILE__ et __LINE__
<?php function rapport_erreur($file, $line, $message) { echo "Une erreur est survenue dans le fichier $file à la ligne $line: $message."; } rapport_erreur(__FILE__,__LINE__, "Y a un problème!"); ?> Université de Metz - Emmanuel Nauer

35 Université de Metz - Emmanuel Nauer - 2001
Variables Université de Metz - Emmanuel Nauer

36 Université de Metz - Emmanuel Nauer - 2001
Variables Notation Signe dollar $ suivi du nom de la variable Format : [a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]* Sensible à la casse Exemple <?php $var = "Jean"; $Var = "Paul"; echo "$var, $Var"; // affiche "Jean, Paul" $4A='pas encore'; // invalide : commence par un nombre $_4A='pas encore'; // valide : commence par un souligné $maïs='jaune'; // valide; 'ï' est ASCII 239. ?> Université de Metz - Emmanuel Nauer

37 Université de Metz - Emmanuel Nauer - 2001
Variables Typage Pas de typage de variables !  Typage automatique lors de l’affectation et des manipulations. Assignation : = Par valeur : option par défaut exemple : $a=32 Par référence : & devant le nom de variable source exemple : $a=&$b Seules les variables nommées peuvent être assignées par référence. Université de Metz - Emmanuel Nauer

38 Assignation de variables
Exemple <?php $a = 'Pierre'; // assigne la valeur 'Pierre' à $a $b = &$a; // référence $a avec $b $a = "Paul"; // modifie $a… echo $a; echo $b; // $b est aussi modifiée $c = &$b; // assignation valide $d = &(24 * 7); // assignation invalide : référence une expression sans nom function test() { return 25; } $e = &test(); // assignation invalide. ?> Université de Metz - Emmanuel Nauer

39 Variables prédéfinies
Fonction phpinfo() Quelques une des variables prédéfinies $SERVER_NAME : nom du serveur $REQUEST_METHOD : méthode de requête (GET, HEAD, POST, PUT) $QUERY_STRING : chaîne contenant la requête <HTML> <BODY> <?php phpinfo();?> </BODY> </HTML> Université de Metz - Emmanuel Nauer

40 Variables prédéfinies
Quelques une des variables prédéfinies $DOCUMENT_ROOT : répertoire d'exécution du script $HTTP_REFERER : adresse de la page d'origine $HTTP_USER_AGENT : type du client (exemple : Mozilla/4.5 [en] (X11; U; Linux i586). $REMOTE_ADDR : adresse IP du client $PATH_TRANSLATED : chemin dans le système de fichier $SCRIPT_NAME : nom du script courant $REQUEST_URI : la page demandée ... Université de Metz - Emmanuel Nauer

41 Quelques fonctions sur les variables
isset($var) Renvoie TRUE si $var contient une valeur sinon renvoie FALSE. unset($var) Détruit $var et libère la mémoire associée. empty($var) Renvoie : TRUE si $var n'est pas définie, ou contient "" ou 0. FALSE sinon. Université de Metz - Emmanuel Nauer

42 Université de Metz - Emmanuel Nauer - 2001
Types de données Université de Metz - Emmanuel Nauer

43 Université de Metz - Emmanuel Nauer - 2001
Types de données Rappel Langage NON fortement typé. Pas de déclaration de type préalable Décision à l'exécution. Types disponibles entier : int, integer réels : real, double, float chaîne de caractères : string tableau : array objet : object Université de Metz - Emmanuel Nauer

44 Université de Metz - Emmanuel Nauer - 2001
Type de données integer entier signé de 32 bits dépassement de capacité  conversion en float. double taille dépendante de la plate-forme en général sur 64 bits : maximum ~1.8e308 précision de 14 décimales Attention à la précision dans les calculs ! boolean TRUE, FALSE <?php $a = 1.234; $a = 1.2e3; $a = 1.44E-02; ?> Université de Metz - Emmanuel Nauer

45 Université de Metz - Emmanuel Nauer - 2001
Type de données string Guillemets simples quote ( ' ) : \' antislash ( \ ) : \\ Guillemets doubles variables interprétées nouvelle ligne : \n retour à la ligne : \r tabulation horizontale : \t antislash ( \ ) : \\ caractère $ : \$ Guillemets doubles ( " ) : \" Université de Metz - Emmanuel Nauer

46 Université de Metz - Emmanuel Nauer - 2001
Type de données string Syntaxe HereDoc : affectation d'un contenu sur plusieurs lignes. <?php $str = <<<EOD Exemple de chaîne s'étalant sur plusieurs lignes EOD; ?> Université de Metz - Emmanuel Nauer

47 Université de Metz - Emmanuel Nauer - 2001
Type de données Casting des variables But : forcer le typage Notation : type entre parenthèses (int), (integer) cast en un entier (real), (double), (float) cast en un réel (string) cast en une chaîne de caractères (array) cast en un tableau (object) cast en un objet Exemple : $pi_arrondi = (int) $pi; Université de Metz - Emmanuel Nauer

48 Fonctions liées au type de données
Demande du type gettype() Test du type is_long() is_double() is_string() is_array() is_object() Université de Metz - Emmanuel Nauer

49 Université de Metz - Emmanuel Nauer - 2001
Opérateurs Université de Metz - Emmanuel Nauer

50 Opérateurs arithmétiques
Addition $expr1 + $expr2 Soustraction $expr1 - $expr2 Multiplication $expr1 * $expr2 Division $expr1 / $expr2 Modulo $expr1 % $expr2 Université de Metz - Emmanuel Nauer

51 Opérateurs sur les chaînes
Concaténation $a = "Vive "; $b = $a . "PHP !"; // maintenant $b contient "Vive PHP !" Université de Metz - Emmanuel Nauer

52 Université de Metz - Emmanuel Nauer - 2001
Opérateurs binaires ET $a & $b : les bits qui sont à 1 dans $a ET dans $b sont mis à 1. OU $a | $b : les bits qui sont à 1 dans $a OU dans $b sont mis à 1. NON ~ $a : les bits sont inversés <?php $a = 5; // $b = 12; // $c = $a & $b; // $c vaut donc soit 4 $d = $a | $b; // $d vaut donc soit 13 $e = ~ $a; // $e vaut donc ?> Université de Metz - Emmanuel Nauer

53 Université de Metz - Emmanuel Nauer - 2001
Opérateurs Logiques ET $expr1 && $expr2 $expr1 and $expr2 OU $expr1 || $expr2 $expr1 or $expr2 NON ! expr Université de Metz - Emmanuel Nauer

54 Opérateurs de comparaison
Syntaxe expr1 OPERATEUR expr2 Comparaisons Égalité : == Diffférence : != Inférieur < Supérieur : > Inférieur ou égal : <= Supérieur ou égal : >= Exemples $a==$b ; $rep!="OUI" ; $total >= 100 ; … Université de Metz - Emmanuel Nauer

55 Structures de contrôle
Université de Metz - Emmanuel Nauer

56 Structures de contrôle
Listes if ... elseif ... else … while … do … while … for … foreach … switch … continue … break … Université de Metz - Emmanuel Nauer

57 Université de Metz - Emmanuel Nauer - 2001
if … elseif … else … Syntaxe if (expression) { commandes } [ elseif (expression) { commandes } ...] [ else { commandes } ] Principe Exécution des commandes correspondant à l’expression évaluée à TRUE <?php if ($a > $b) { print " a plus grand que b "; } elseif ($a == $b) { print " a égal b "; } else { print " a plus petit que b "; } ?> Université de Metz - Emmanuel Nauer

58 Université de Metz - Emmanuel Nauer - 2001
while … Syntaxe while (expression) { commandes } Principe Exécution des commandes tant que l’expression, évaluée à chaque début de boucle, est TRUE <?php $i=1; while ($i < 10) { print $i++; // affichage de i // puis incréméntation } ?> Université de Metz - Emmanuel Nauer

59 Université de Metz - Emmanuel Nauer - 2001
do … while … Syntaxe do { commandes } while (expression); Principe Exécution des commandes tant que l’expression, évaluée à chaque fin de boucle, est TRUE <?php $i=1; do { print $i++; // affichage de i // puis incréméntation } while ($i < 10); ?> Université de Metz - Emmanuel Nauer

60 Université de Metz - Emmanuel Nauer - 2001
for … Syntaxe for (expr1; expr2; expr3) { commandes } Principes Les expri sont évaluées (exécutées) de la façon suivante : expr1 : une seule fois, en début de la boucle expr2 : à chaque début d’itération. Si l’évaluation vaut TRUE, les commandes sont exécutées ; Si l’évaluation vaut FALSE, elles ne le sont pas. expr3 : à chaque fin d’itération. Les expri ne sont pas obligatoires ! Si expr2 est omise : évaluation de expr2 à TRUE (boucle infinie). Utilisation possible de break pour gérer l’arrêt de la boucle. Université de Metz - Emmanuel Nauer

61 Université de Metz - Emmanuel Nauer - 2001
for … <?php for($i=1; $i<10; $i++) { print $i; // affichage de i } $i=1; for(;;) { if($i<10; $i++) break; print $i; // affichage de i $i++; // incréméntation de i for($i=1; $i<10; print $i, $i++) ; ?> Université de Metz - Emmanuel Nauer

62 Université de Metz - Emmanuel Nauer - 2001
foreach … (PHP4) 1ère syntaxe foreach(array_expression as $value) { commandes } Principe Exécution des commandes tant que l’expression, évaluée à chaque fin de boucle, est TRUE <?php $i=1; do { print $i++; // affichage de i // puis incréméntation } while ($i < 10); ?> Université de Metz - Emmanuel Nauer

63 Université de Metz - Emmanuel Nauer - 2001
foreach … (PHP4) 1ère syntaxe foreach(array_expression as $key => $value) { commandes } Principe Exécution des commandes tant que l’expression, évaluée à chaque fin de boucle, est TRUE <?php $i=1; do { print $i++; // affichage de i // puis incréméntation } while ($i < 10); ?> Université de Metz - Emmanuel Nauer

64 Université de Metz - Emmanuel Nauer - 2001
break Syntaxe break [valeur]; But Permet de sortir des structures : for while foreach switch L’argument optionnel valeur permet de stopper en une fois l’exécution de plusieurs structures imbriquées. Université de Metz - Emmanuel Nauer

65 Université de Metz - Emmanuel Nauer - 2001
break <?php $i=0; while (++$i) { switch($i) { case 5 : echo "je suis à la moitié\n" ; break ; // sortir du switch case 10 : echo "c’est fini\n" ; break 2; // sortir du switch // et du while default : echo $i; break; } ?> Université de Metz - Emmanuel Nauer

66 Université de Metz - Emmanuel Nauer - 2001
Fin Université de Metz - Emmanuel Nauer


Télécharger ppt "PHP Emmanuel Nauer Université de Metz."

Présentations similaires


Annonces Google