cours n°1M2. IST-IE (S. Sidhom) UE 303 Promo. M2 IST-IE 2005/06 Conception d’un système d'information multimédia Architecture trois-tiers : PHP/MySQL & Application client-serveur Par : Sahbi SIDHOM MCF. Université Nancy 2 Équipe de recherche SITE – LORIA
cours n°1M2. IST-IE (S. Sidhom)2 Programmation en PHP/MySQL
cours n°1M2. IST-IE (S. Sidhom)3 Objectifs Architecture et fonctionnement Structures de base et de contrôle Fonctions usuelles Gestion des objets MySQL et bases de données Web dynamique
cours n°1M2. IST-IE (S. Sidhom)4 I. Architecture et fonctionnement
cours n°1M2. IST-IE (S. Sidhom)5 Architecture technique PHP est utilisé conjointement avec : généralement APACHE comme serveur HTTP MySQL et/ou Oracle comme SGBD/R (ou aussi PostgreSQL, SQLServer de MS, …) Linux, BSD, Windows ou MacOS comme système d’exploitation
cours n°1M2. IST-IE (S. Sidhom)6 Nombreux connecteurs d’API Capacité de se connecter à la plupart des applications de l’entreprise avec PHP : Web (HTML, WML, …) Services reposant sur Soap API client/serveur : GTK, WUL, … Ligne de commande MS office, Adobe, Macromedia Flash, …
cours n°1M2. IST-IE (S. Sidhom)7 Fonctionnement de PHP PHP Client Internet Serveur HTML (navigator) Zend 2 Opcode PHP script
cours n°1M2. IST-IE (S. Sidhom)8 II. Structures de base et de contrôle
cours n°1M2. IST-IE (S. Sidhom)9 Script PHP Type 1 : echo (" Ceci est un script en php ! "); Type 2 : <?php echo (" Ceci est un script en PHP pour XML/XHTML! "); ?> Type 3 : <? echo (" Ceci est un script de manière générale"); ?>
cours n°1M2. IST-IE (S. Sidhom)10 Balises propres à PHP OuvertureFermerture <??> <?php?>
cours n°1M2. IST-IE (S. Sidhom)11 Insertion de PHP dans HTML Ma première page en PHP hello ! Date courante 1: Date courante 2:
cours n°1M2. IST-IE (S. Sidhom)12 PHP & HTML selon le serveur Écriture : premier pas en PHP Essai de script PHP <?php echo "Bonjour, il est "; echo date("H:i:s"); ?> Exécution :
cours n°1M2. IST-IE (S. Sidhom)13 Résultat d’exécution : premier pas en PHP Essai de script PHP Bonjour, il est 17:05:38 Que remarquez-vous ?
cours n°1M2. IST-IE (S. Sidhom)14 1. Syntaxe du langage PHP : Les VARIABLES
cours n°1M2. IST-IE (S. Sidhom)15 Définition des Variables $ma_variable = expression ; attention à la casse ( $ a différent de $ A ) ; le nom de la variable commence avec une lettre ou un souligné et est constitué de lettres (aA…), chiffres (012…), souligné (_) ; pas de déclaration préalable ;
cours n°1M2. IST-IE (S. Sidhom)16 Exemples en PHP3, les variables sont assignées uniquement par valeurs : <?php $reel = 0.3; $entier = 22; $chaine = "bonjour !"; $phrase1 = "bonjour $chaine!"; $phrase2 = 'bonjour $chaine$'; print("un reel : $reel "); print("un entier : $entier "); print("une chaine : $chaine "); print("une phrase : $phrase1 "); print("du bon usage des guillemets : $phrase2"); ?>
cours n°1M2. IST-IE (S. Sidhom)17 Type Le type est donné automatiquement : integer, double, string, array, object. Pour écrire un guillemet dans une chaîne, utiliser \". Exemple : <?php $chaine = "\"Salut tout le monde\""; echo $chaine; ?>
cours n°1M2. IST-IE (S. Sidhom)18 Conversion de type « cast » intval, strval, doubleval : $entier = intval($reel); (integer), (string), (double) : $entier = (integer) $reel; booléen : settype(var, type); chaîne : strval(argument) retourne l'argument sous forme de chaîne. Exemple : <?php $reel = 3.85; $entier = (integer) $reel; print("le reel $reel donne l'entier $entier"); ?>
cours n°1M2. IST-IE (S. Sidhom)19 Fonctions pour connaître le type chaine gettype(variable) booleen is_array(var) booleen is_double(var) booleen is_integer(var) booleen is_object(var) booleen is_string(var) booleen is_type(var, type) : renvoie 1 si var est du type : type
cours n°1M2. IST-IE (S. Sidhom)20 Variables d’environnement Il existe des variables prédéfinies, la plupart dépendent du serveur qui appelle le script php. Pour obtenir la liste complète il suffit d'exécuter le script ci- dessous : ( Apache Environment ) <?php phpinfo(); ?> une page sera affichée contenant des tableaux qui décrivent la configuration, les variables d'environnement Apache. Quelques unes des variables d'environnement (Apache) : HTTP_USER_AGENT : navigateur du client ; REQUEST_METHOD : méthode utilisée pour appeler la page (GET, HEAD, POST, PUT) ;
cours n°1M2. IST-IE (S. Sidhom)21 Variables PHP HTTP_GET_VARS tableau associatif pour la methode get (nom, valeur) HTTP_POST_VARS tableau associatif pour la methode post (nom, valeur) HTTP_COOKIE_VARS tableau associatif pour la methode cookie (nom du cookie, contenu) GLOBALS tableau associatif qui contient les variables globales du script, la clé est le nom de la variable (sans le dollar) et la valeur est le contenu de la variable.
cours n°1M2. IST-IE (S. Sidhom)22 2. Syntaxe du langage PHP : Les CONSTANTES
cours n°1M2. IST-IE (S. Sidhom)23 Définition des constantes définition de la constante : define ("NOM_CONST", valeur); utilisation : NOM_CONST vérification d'existence : if(defined(NOM_CONST))... Exemple : <?php print( "envoyez un mail à ".MAIL_sidhom ); ?>
cours n°1M2. IST-IE (S. Sidhom)24 Constantes prédéfinies TRUE : vrai FALSE : faux __FILE__ : nom du fichier du script parsé (attention il y a deux caractères soulignés avant FILE et deux après) __LINE__ : numéro de la ligne du script PHP_VERSION : version de PHP PHP_OS : système sur lequel PHP exécute le script Exemple : <?php echo PHP_VERSION." "; echo PHP_OS." "; echo __LINE__." "; echo __FILE__." "; ?>
cours n°1M2. IST-IE (S. Sidhom)25 3. Syntaxe du langage PHP : Les TABLEAUX
cours n°1M2. IST-IE (S. Sidhom)26 Définition des tableaux Un tableau est créé par la fonction (array) qui prend en argument des structures ( key => value ), séparées par des virgules (, ) : $nom_tableau = array(key1=>value1,...); Exemple : $tab = array("b","o","n"); $tab[0] = "b"; $tab[1] = "o"; $tab[2] = "n"; <?php echo "essai avec array : "; $tab = array("b", "o", "n"); $taille = count($tab); for($i=0; $i<$taille; $i++) echo $tab[$i]; ?>
cours n°1M2. IST-IE (S. Sidhom)27 Une dimension accès à un élément d'un tableau de n cases : $tab[indice] avec indice dans l'intervalle [0,n-1] nombre d'éléments dans un tableau : $nb = count($tab); Exemple : <?php echo "essai avec array : "; $tab = array("a","n","n","é","e","0","7"); $taille = count($tab); for($i=0; $i<$taille; $i++) echo $tab[$i]; ?>
cours n°1M2. IST-IE (S. Sidhom)28 Plusieurs dimensions Exemple : $saison = array( "ete"=>array("juin","juillet","aout","septembre"), "automne"=>array("septembre","octobre","novembre", "decembre"), "hiver"=>array("decembre","janvier","fevrier","mars"), "printemps"=>array("mars","avril","mai","juin") ); print($saison["printemps"][2]);
cours n°1M2. IST-IE (S. Sidhom)29 Associatifs initialisation 1 : $nomtab["cle"] = valeur; initialisation 2 : $nomtab =array("cle1"=>valeur1, "cle2"=>valeur2,...); accès à un élément : $individu["cle"]; parcourir tous les éléments, solution 1 (for) : for(reset($nomtab); $cle = key($nomtab); next($nomtab)) { $val = pos($nomtab); print("$cle = $val \n"); }
cours n°1M2. IST-IE (S. Sidhom)30 parcourir tous les éléments, solution 2 (while) : reset($nomtab); while(list($cle, $valeur) = each($nomtab)) { echo " $cle = $valeur"; }
cours n°1M2. IST-IE (S. Sidhom)31 Fonctions pour les tableaux
cours n°1M2. IST-IE (S. Sidhom)32
cours n°1M2. IST-IE (S. Sidhom)33
cours n°1M2. IST-IE (S. Sidhom)34