PHP DUCCI2 Mihaela.Scuturici@univ-lyon2.fr http://infographie.univ-lyon2.fr/~mscuturi/icom/ducci2/
Plan Généralités, outils et compétences nécessaires Langage PHP, premier script Variables Opérateurs et expressions Entrées et sorties Exercices
Généralités PHP langage de script coté serveur incorporable dans tout document HTML A la base : Personal Home Page (Rasmus Lerdorf) Ensuite : Php Hypertext Preprocessor But : créer des pages Web dynamiques et interactives
Utilisation d une BD modèle client - serveur BD Serveur Clients
Web modèle client - serveur Pages Web Apache Serveur Web Internet/ Intranet Problème : comment intégrer une BD avec ce modèle?
Plate-forme PHP-MySQL-Apache BD MySQL Script PHP Pages Web Apache Apache + PHP + MySQL Internet/ Intranet Clients Web
Compétences et outils nécessaires Compétences nécessaires : (X)HTML Notions de programmation Outils : Editeur simple pour écrire le code (X)HTML et PHP Serveur local pour tester les pages PHP (sinon server distant+connexion au site à l aide d un navigateur)
Serveur local Pour Windows : Le plus connu : EasyPHP (http://www.easyphp.org) Wampserver (http://www.wampserver.com) Pour MacOS : http://www.mamp.info
Plan Généralités, outils et compétences nécessaires Langage PHP, premier script Variables Opérateurs et expressions Entrées et sorties Exercices
Langage PHP Langage de script embarqué dans les pages HTML et traité par le serveur. Références Web utiles : Le site officiel de PHP (http://www.php.net/) http://www.siteduzero.com/tutoriel-3-14668-concevezvotre-site-web-avec-php-et-mysql.html http://www.w3schools.com/php/default.asp
Langage PHP Script PHP : commence par <?php et se termine par?> ou <?=?> (forme courte mais qui n est pas toujours correctement interprétée) ou <script language="php"> </script> Est intégré dans un fichier contenant du HTML Est enregistré avec l extension.php
Premier script PHP <html> <head> <title>page PHP</title> </head> <body> <?php?> </body> </html> echo "<b>ceci est un script PHP!</b>"; Sauvegarder le texte dans le fichier Script1.php dans le dossier Web racine Visualiser la page à l aide d un navigateur web : http://localhost
Premier script PHP <html> <head> <title>page PHP</title> </head> <body> <?php?> </body> </html> echo "<b>ceci est un script PHP!</b>"; Sauvegarder le texte dans le fichier Script1.php dans le répertoire public_html/php sur le serveur infographie.univ-lyon2.fr Visualiser la page à l aide d un navigateur web : http://infographie.univ-lyon2.fr/~votrelogin/php/script1.php
Deuxième script PHP Testez le script suivant qui permet de voir les informations sur le serveur (local ou distant ) et les modules que vous pouvez utiliser <?php?> phpinfo();
Commentaires Commentaire sur une seule ligne introduit par // Exemple : //commentaire court Commentaire sur plusieurs lignes /* */ Exemple : /* commentaire sur plusieurs lignes */
Plan Généralités, outils et compétences nécessaires Langage PHP, premier script Variables Opérateurs et expressions Entrées et sorties Exercices
Variables Leur nom commence toujours par le caractère réservé '$ suivi d un identifiant Exemple : $npos Identifiant : commence par un caractère alphabétique (a-z ou A- Z) ou par le caractère de soulignement (_) les caractères suivants peuvent être : des lettres, le caractère de soulignement des chiffres
Variables Types : entier, réel, chaîne de caractères, tableau, booléen, objet, resource (adresse d une ressource externe) ou NULL Les noms des variables sont sensibles à la casse La déclaration des variables n est pas obligatoire en début de script L initialisation des variables n est pas obligatoire
Exercice Parmi les variables suivantes, lesquelles ont un nom pas valide? mavar $mavar $mavariable $chaînedecaracteres $var5 $_mavar $_5var $ élément1 $hotel4*
Variables isset($a) - teste si la variable $a est définie (0=non, 1=oui) unset($a) - supprime la variable et désalloue la mémoire utilisée gettype($a) - retourne le type de la variable : ( string, integer, double, array, object) ( string si la variable n'est pas définie) is_double, is_string, is_int, is_float, is_object - testent le type de la variable empty($a) retourne la valeur TRUE si la variable n est pas initialisée, a la valeur 0 ou NULL ou la chaine vide, et la valeur FALSE si elle a une autre valeur
Variables <html> <title>la somme de deux nombres</title> <body> <?php $na = 10; $nb = 11; $nsum = $na + $nb; echo "<b> $na + $nb = $nsum </b>";?> </body> </html> Somme.php
Chaînes de caractères <html> <head> <title>les plus grandes villes</title> </head> <body> <?php $strville1 = "Paris"; $strville2 = "Lyon"; $strville3 = "Marseille"; $strvilles = $strville1. $strville2. $strville3; echo " Les plus importantes villes de France : $strvilles ";?> </body> </html>
Exercice Donner la valeur des variables $x, $y, $z à la fin du script : $x="7 personnes"; $y=(integer) $x; $x="9e3"; $z=(double) $x;
Chaînes de caractères Spécifier une chaîne de caractères : l'entourer de guillemets simples (le caractère ') Pour spécifier un guillemet simple littéral précédez-le d'un antislash (\) Pour spécifier un antislash littéral avant un guillemet simple ou à la fin d'une chaîne de caractères, ecrivez-le deux fois (\\) Devant n'importe quel autre caractère, l'antislash s'affichera l'entourer de guillemets doubles (le caractère ") Plus de caractères précédés d un \ seront interprétées (\$ - pour le symbole $, \n pour la fin de ligne, etc. - voir http://www.php.net/manual/fr/language.types.string.php) Les variables dont le nom apparait dans la chaîne seront interprétées
Plan Généralités, outils et compétences nécessaires Langage PHP, premier script Variables Opérateurs et expressions Entrées et sorties Exercices
Opérateurs - d affectation : = - arithmétiques : +, -, *, /, %, ++, -- - opérateur de concaténation :. - d affectation combinée : +=, -=, *=, /=, %=,.= - logiques et relationnels : <, >, <=, >=, ==,!=, AND, &&, OR,, XOR,!
Chaînes de caractères int ord(string car) Retourne le code UNICODE d un caractère int chr(int code) Retourne le caractère à partir de son code int strlen(string $chaine) Retourne le nombre de caractères d une chaîne Exemple : $code="69003"; echo strlen($code);
Chaînes de caractères Modifier la casse string strtolower(string $ch) Retourne la chaîne avec tous les caractères en minuscules string strtoupper(string $ch) Retourne la chaîne avec tous les caractères en majuscules string ucwords(string $ch) Retourne la chaîne avec toutes les initiales des mots en majuscules string ucfirst(string $ch) Retourne la chaîne avec uniquement la première lettre en majuscule
Chaînes de caractères Recherche de sous-chaînes string strstr(string $ch, string $ch2) Recherche si la chaine $ch2 est contenue dans la chaine $ch et retourne tous les caractères à partir de la 1 ère apparition de $ch2 jusqu à la fin de $ch. Si $ch2 n est pas trouvée, la fonction retourne false. Sensible à la casse string stristr(string $ch, string $ch2) Comme strstr mais insensible à la casse string strrchr(string $ch, string $ch2) Retourne la portion de $ch à partir de la dernière occurrence de $ch2 string substr(string $ch, integer ind [, integer $N]) Retourne la chaîne contenant N caractères de $ch à partir de l indice ind. Si pas de N, retourne la sous-chaîne à partir de ind jusqu à la fin de $ch string substr_count(string $ch, string $ssch) Retourne le nombre d apparitions de la chaîne $ssch dans la chaîne $ch
Chaînes de caractères Recherche de sous-chaînes string str_replace(string $ch1, string $ch2, string $ch [, int $var]) Retourne la chaîne $ch dans laquelle toutes les occurrences de $ch1 sont remplacées par $ch2. $var contient le nombre de remplacements effectués. string strpos(string $ch, string $ch2 [, int $N]) Retourne la position du 1 er caractère de la 1 ère occurrence d une souschaîne $ch2 dans $ch, ou false si $ch2 n est pas trouvé dans $ch. Si présent, N précise l indice de début de la recherche. Sensible à la casse. string stripos(string $ch, string $ch2 [, int $N]) Comme strpos mais insensible à la casse string strrpos(string $ch, string $ch2) Retourne la position de la dernière occurrence de $ch2 trouvée string strripos(string $ch, string $ch2) Comme strrpos mais insensible à la casse
Chaînes de caractères Comparaison de chaînes Opérateur d égalité (==) int strcmp(string $ch1, string $ch2) Retourne une valeur négative si $ch1<$ch2, positive si $ch1>$ch2 et 0 en cas d égalité. Sensible à la casse int strcasecmp(string $ch1, string $ch2) Comme strcmp, mais insensible à la casse int strncmp(string $ch1, string $ch2, int $N) et int strncasecmp(string $ch1, string $ch2, int $N) comme strcmp et strcasecmp, mais en limitant la comparaison aux N premiers caractères
Plan Généralités, outils et compétences nécessaires Langage PHP, premier script Variables Opérateurs et expressions Entrées et sorties Exercices
Entrées et sorties Instruction echo : Affiche une ou plusieurs chaînes de caractères Si plusieurs chaînes, il faut les séparer par des virgules Exemple : <?php echo 'Chaine ', 'avec ', 'plusieurs ', 'parametres';?> Résultat : Chaine avec plusieurs parametres Ou les concaténer en utilisant l opérateur «.» Exemple : <?php echo 'Chaine'.'avec '.'plusieurs '.'parametres';?>
Entrées et sorties Attention à l utilisation des " " et des ' ' Avec les ' ' la valeur d une éventuelle variable n est pas interprétée Exemple <?php $age= 21; echo "Age : $age"; echo "<br />"; echo 'Age : $age';?>
Exercices 1. Ecrivez un script PHP qui affiche dans une page Web le produit de deux nombres (137 et 234) 2. Calculez et affichez la valeur approximative de PI en utilisant la formule suivante :
Exercice Créez le squelette d une page web classique (en-tête, corps). A l aide de PHP, affectez la chaîne suivante à une variable, en respectant les sauts de ligne : <p>quelques exemples de <em>fonctions</em> de manipulation de <em>chaines de caractères</em>.</p> Afficher la chaîne de caractères et ensuite le résultat de l application des fonctions suivantes à la chaîne de caractères : nl2br, strip_tags, strtoupper, strrev, ucwords. Que font ces fonctions? Affichez la sous-chaîne commençant au 6 ème caractère et finissant 6 caractères plus loin. Remplacer dans la chaîne la balise «em» par la balise «strong» et affichez le nombre de remplacements effectués.
Exercice* Affichez dans une page web la température de Lyon Satolas et Lyon Bron, en utilisant les informations mises à disposition par l université du Wyoming : http://weather.uwyo.edu/surface/meteorogram/ et la fonction suivante : <?php function getinfosmeteo($station = 'LFLL') { // LFLL correspond au code de Lyon Satolas // Pour trouver le code d'une station : http://weather.uwyo.edu/surface/meteorogram/ $strmeteo = file_get_contents('http://weather.uwyo.edu/cgibin/wyowx.fcgi?type=current&date=current&hour=current&units=m&station='.$sta tion); return $ strmeteo; } echo getinfosmeteo('lfll');?> (fichier ExerciceMeteo.txt)