1 / 53

PHP

ou le web dynamique. PHP. généralités. écrit par Ramsus Lerdorf en 1994 pour gérer sa page perso actuellement stable en version 5 (5.3) et la version 6 est imminente le P de LAMP (Linux Apache MySQL PHP) Damien Seguy pionnier français dans la promotion du langage PHP ( nexen.net )

breena
Download Presentation

PHP

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ou le web dynamique PHP

  2. généralités • écrit par Ramsus Lerdorf en 1994 pour gérer sa page perso • actuellement stable en version 5 (5.3) et la version 6 est imminente • le P de LAMP (Linux Apache MySQL PHP) • Damien Seguy pionnier français dans la promotion du langage PHP (nexen.net) • écrit en de C et historiquement basé sur des bibliothèques Perl • Le langage proprement dit est Zend Engine, PHP (Hypertext Preprocessor) est la version embedded de Zend Engine • par convention l'extension est .php (éventuellement .php4, .php5 si plusieurs version cohabitent) • PHP 4 n'est plus maintenu depuis fin 2007 • la doc officielle en français http://php.net/manual/fr/index.php

  3. php cli VS mod_php • 2 versions php • php cli en ligne de commandes • Chemin à mettre dans la variable d’environnement $PATH • mod_php • Permet d’embarquer un interpréteur php dans les process fils du démon httpd • 2 fichiers de configuration de php.ini • N.B certains projets utilisent maintenant le même interpréteur (UwAmp)

  4. php.ini • Quelques directives • register_globals: rend les variables GET, POST, de COOKIE et de SESSION directement accessibles (déconseillé!) • post_max_size: taille maximale d’une requête en méthode post • upload_max_fliesize: taille maximale des fichiers ulpoadés • memory limit: taille de mémoire maximale allouée à PHP • extension_dir: spécifie le répertoire dans lequel PHP doit chercher des extensions externes à charger • extension: quelles extensions doivent être chargées

  5. Les extensions php • Quelques extensions • simpleXML (inclus en PHP5): fournit des outils très simples et faciles à utiliser pour convertir du XML en un objet qui peut être manipulé avec ses propriétés et les itérateurs de tableaux. • SQLite (inclus en PHP5): fait l'interface avec le moteur de base SQLite Embeddable SQL Database Engine (ne nécessite pas l'installation d'un serveur de BDD) • MySQL: permet d'accéder aux bases de données MySQL • Pcre: permet la compatibilité avec les expressions régulières Perl

  6. Un standard • supporté par de nombreux serveurs http • IIS, Netscape, Roxen, IPlanet • multiplateforme : *nix et windows (wamp, EasyPHP, xampp) • proposé massivement par les hébergeurs

  7. Le web statique

  8. Le web dynamique typique

  9. Le langage • Dit de type embedded : le code PHP s'insère au milieu du code HTML • <?php = début de portion de code PHP • ?> = fin de portion de code PHP • Chaque instructions se termine par le caractère ; • commentaire • // commente une ligne entière • /* … */ commente une portion de code PHP • PHP est sensible à la casse (il y a un distinction entre les minuscules et les majuscules) • TRUE (1) et FALSE(0) sont deux contantes prédéfinies

  10. Hello world!!Côté serveur <html>  <head>    <title>My First PHP Script</title>  </head>  <body>    <p>        <?php echo "Hello World";  ?>    </p>  </body></html>

  11. Version cgi (non embedded) <?phpecho "<html>";echo "<head>";echo "<title>My First PHP Script</title>";echo "</head>";echo "<body>";echo "<p>Hello World</p>";echo "</body>";echo "</html>";?>

  12. Côté client <html>  <head>    <title>My First PHP Script</title>  </head>  <body>    <p>        Hello World    </p>  </body></html>

  13. Les constantes • créer une constante • define("MaConstante", 5); • Tester si une constante existe • defined("MaConstante"); • Appeler une constante • echo MaConstante; //affiche 5

  14. Les variables • Toutes les variables commence par le caractère $ suivi d'une lettre ou d'un _ • Le typage est implicite, il dépend de la valeur affectée <? $MonEntier=3; //est un entier $MonReel=1.23e-12; //est un float $MaChaine="Hello world!"; // est un string $MonEntier="3"; // est un string ?>

  15. Les types • Boolean : Booléen • Integer : Entier • Réel : Double • String : Chaîne de caractères • Array : Tableau • Object : Objet • Tester le type d’une variable • gettype($var); • Typer explicitement • settype($var,  "type");

  16. Opérations sur les variables • Tester le type d’une variable • gettype($var); • Typer explicitement • settype($var,  "type"); • Tester si une variable existe • isset($var); • Détruire une variable et libérer la mémoire qui lui était allouée • unset($var); • Tester si une variable est non affectée (i.e. =0 ou ="") • empty($var);

  17. transtypage • <?php$foo = 10;    // $foo est un entier$bar = (double) $foo;    // $bar est un double • ?> • (int) , (integer) - type entier • (bool) , (boolean) - booléen • (double) , (float) , (real) - type double • (string) - type chaîne de caractère • (array) - type tableau • (object) - type objet

  18. Les stringsles délimiteurs "..." • toutes les variables contenues entre ces délimiteurs seront évaluées • $MyColor="rouges";echo "Mes souliers sont $MyColor"; • affiche Mes souliers sont rouges • caractères échappés • \\ pour afficher le caractère \ • \$ pour afficher le caractère $ • \" pour afficher le caractère "

  19. Les stringsles délimiteurs ‘...’ • aucune des variables contenues entre ces délimiteurs ne sera évaluée • $MyColor="rouges";echo 'Mes souliers sont $MyColor'; • affiche Mes souliers sont $MyColor • caractères échappés • \\ pour afficher le caractère \ • \' pour afficher le caractère '

  20. Les stringscaractères non imprimables • \n nouvelle ligne • \r retour à la ligne • \t tabulation • spécificité • "\r\n" sous windows • "\n" sous *nix • "\r " sous mac

  21. Fonctions d’affichage • écrit sur la sortie standard print('hello '.$nom); • echo("hello $nom"); • print('hello '.$nom); • écrit de manière formatée comme en C sur la sortie standard • printf("hello %s", $nom); • écrit de manière lisible les variables complexes, notamment les tableaux et les objets • print_r($tableau);

  22. Opérateursarithmétiques • + pour l'addition • - pour la soustraction • * pour la multiplication • / pour la division • % pour la division entière

  23. Opérateursd’affectation • $y est affecté à $x • $x = $y • $y est additionné à $x • $x += $y <=> $x = $x + $y • $y est soustrait de $x • $x -= $y <=> $x = $x - $y • $x est multiplié par $y • $x *= $y <=> $x = $x * $y • $x est divisé par $y • $x /= $y <=> $x = $x / $y • $y le reste de $x/$y est affecté à $x • $x %= $y <=> $x = $x % $y

  24. Opérateursde comparaisons • égalité de $x et $y • $x == $y • égalités des valeurs et des types de $x et $y • $x === $y • $x est strictement inférieur à $y • $x < $y • $x est strictement supérieur à $y • $x > $y • $x est inférieur ou égal à $y • $x =< $y • $x est supérieur ou égal à $y • $x => $y

  25. Opérateurs logique & concaténation • logique • && et logique • || ou logique • ! négation • concaténation : • . concatène deux chaines de caractères

  26. Les tableaux • le constructeur permettant de créer un tableau est array() • par défaut l'indexation d'un tableau commence à 0 • $langages = array('français','english','deutsch'); • il est possible de créer un tableau en lui affectant des valeurs • $langages[] = 'français'; • $langages[] = 'english'; • $langages[] = 'deutsch';

  27. Les tableaux • spécifier explicitement les indices • $langages[0] = 'français'; • $langages[1] = 'english'; • $langages[2] = 'deutsch'; • indexer des tableaux avec des chaînes de caractères (tableaux associatifs) $langages = array( 'fr' => 'français', 'en' => 'english', 'de' => 'deutsch‘ ); • sans le constructeur • $langages['fr'] = 'français'; • $langages['en'] = 'english'; • $langages['de'] = 'deutsch';

  28. Fonctions sur les tableaux • compte les éléments du tableau $langages • count($langages); • renvoit TRUE si la chaîne caractère 'deutsch' est un élément du tableau • in_array('deutsch', $langages); • ajoute l'élémént 'chinese' à la fin du tableau (empile) • array_push($langages, 'chinese'); • renvoit le dernier élément du tableau (dépile) • array_pop($langages); • il existe de nombreuses fonctions sur les tableaux

  29. Structure conditionnelle • if( $cpt > 0 && $cpt < 4 ) • {echo $cpt. “est dans l’intervalle ]0;4[“; • } • elseif( $cpt >= 4 && $cpt < 10) • {echo $cpt. “est dans l’intervalle [4;10[“; • } • else • { echo $cpt. “est dans l’intervalle ]10;+∞)“; • }

  30. structure de choix • swicth($animal) • {    case 'chien' :        echo " ouaf  ouaf ";    break;    case 'chat' :        echo " miaou miaou ";    break;    default :        echo $Animal." n’est pas un animal domestique "; • } • instruction break est nécessaire si les actions qui le suivent n'ont pas être exécutées

  31. structure de boucle • $NbDeCoup=6;$i=0;While($i != $NbDeCoup) • {   $CoupAJouer = $NbDeCoup - $i;   echo "il vous reste ". $CoupAJouer. " à jouer";   $i++;}

  32. structure de boucle inversée • $NbDeCoup=6; • $i=0; • do • {$CoupAJouer = $NbDeCoup - $i;echo "il vous reste ". $CoupAJouer. " à jouer";$i++; • } • While($i != $NbDeCoup); • echo “la partie est finie“;

  33. structure de boucle itérative • $tab=Array(2,4,8,9,0);for ( $i = 1 ; $i <= 4 ; $i++ ) • {    echo " élément numéro ".$i;    echo “contient la valeur".$tab[i];}

  34. structure de parcours de tableau • $langages = array('fr' => ' français', 'en' => 'english', 'de' => 'deutsch'); • foreach ( $langages as $libelle) • { • echo "<li>".$libelle."</li>"; • } • affichera • français • english • deutsch foreach ( $langages as $key => $libelle){ echo "<li>".$key." : ".$libelle."</li>"; } affichera • fr : français • en : english • de : deutsch

  35. sortie forcée de boucle • l'instruction break pemet de quitter prématurément une boucle • foreach($langages as $libelle) • { • if($libelle == "english"){ break; • } • } • stoppera le parcours du tableau dés que la valeur "english" est rencontrée

  36. passage forcé à l'itération suivante • Continue permet de passer à l’itération suivante d’une boucle sans exécuter le code qui suit cette instruction dans le bloc de la boucle • foreach($langages as $libelle) • { • if($libelle == "english"){ continue;}echo "<li>".$libelle."</li>"; • } • affichera tous les éléments du tableau langages sauf la valeur english

  37. Inclusion / factorisation • inclure et exécuter le code de file.php si le fichier existe • include(file.php); • inclure et exécuter le code de file.php si le fichier existe et s’il n’a pas déjà été inclus par le script courant • include_once(file.php); • inclure et exécuter le code de file.php (ce fichier doit exister sinon require renverra un message d’erreur) • require(file.php); • inclure et exécuter le code de file.php (ce fichier doit exister sinon require renverra un message d’erreur) si le fichier n’a pas déjà été inclus par le script courant • require_once(file.php);

  38. Ouvrir / écrire un fichier • Ouvrir un fichier • fopen ( string $filename , string $mode) • Renvoie un identifiant de ressource. $mode peut être ‘r’, ‘w’, ‘r+’ … Écrire dans un fichier • fwrite ( resource $handle , string $string) Lire length octe d’un fichier • fread ( resource $handle , int $length ) Lire un fichier en entier • fread ($handle, filesize ($filename)) Fermer un fichier • fclose ($handle)

  39. fonctions • Les fonctions sont des portions de code (entre { … })associés à un nom • Les fonctions peuvent prendre des arguments dont il n’est pas nécessaire de spécifier le type • La liste des arguments est entre (…) , séparés par des virgules • le mot clé function : indique le début d’une déclaration de fonction • le mot clé return : spécifie le résultat à renvoyer

  40. Fonction typique • <?   function somme ($a,$b)   {      return $a + $b;   } • ?>

  41. Appel d’une fonction • <?   $Total=234;   $SousTotal=123;   $Total=somme ($Total,$SousTotal);   echo $Total;// affiche 357 • ?>

  42. Paramètres par défaut • Il est possible d’attribuer des valeurs par défaut aux arguments d’une fonction • Une valeur par défaut ne peut être qu’une constante • Les arguments ayant une valeur par défaut doivent être placés après les arguments qui n’en ont pas

  43. Exemple d’utilisation de paramètres par défaut • <? • function ServirApero($Contenant, $Boisson = "ricard") • { • return " Servir un ".$Contenant. " de ".$Boisson; • } • echo ServirApero("verre"); • //Affiche Servir un verre de ricard • echo ServirApero("chaudron", "bourbon"); • //Affiche Servir un chaudron de bourbon • ?>

  44. Portée des variables • Une variable définie dans une fonction a une portée locale à la fonction <?    function somme ($a,$b)   {      return $b = $a + $b;   } ?>

  45. Variables locales à la fonction • <?    $a=2;   $b=4;   echo somme ($a,$b);//Affiche 6   echo $a; //Affiche 2   echo $b; //Affiche 4 • ?>

  46. le mot clé global • <?    function somme ()   {      global $a, $b;      return $b = $a + $b;   } • ?>

  47. Variables globales au script • Toutes les variables globales du script <?    $a=2;   $b=4;   echo somme ();//Affiche 6   echo $a; //Affiche 2   echo $b; //Affiche 6 ?>

  48. Variables prédéfinies: $GLOBALS • $GLOBALS est un tableau associatif contenant les références sur toutes les variables globales du script. • Les noms des variables sont les index du tableau. • Cette fonction est strictement équivalente à la précédente function somme () {$GLOBALS["b"]=$GLOBALS[“a"]+$GLOBALS["b"]; }

  49. Variables prédéfinies: $_SERVER • $_SERVER est un tableau contenant des informations comme les en-têtes, dossiers et chemins du script. • $_SERVER ['REQUEST_METHOD'] • get, post, head, put • $_SERVER ['QUERY_STRING'] • La chaîne de requête, si elle existe, qui est utilisée pour accéder à la page. • $_SERVER ['HTTP_REFERER'] • L'adresse de la page (si elle existe) qui a conduit le client à la page courante. • $_SERVER ['HTTP_USER_AGENT'] • une chaîne qui décrit le client HTML utilisé pour voir la page courante • $_SERVER [‘REMOTE_ADDR'] • L'adresse IP du client qui demande la page courante. • $_SERVER [‘REMOTE_HOST'] • Le nom de l'hôte qui lit le script courant (résolution DNS inversée).

  50. Variables prédéfinies: $_COOKIE • Un tableau associatif des valeurs passées au script courant via les cookies HTTP • Si la directive register_globals (c'est mal) est active, alors ces variables seront aussi rendues directement accessible dans le contexte d'exécution global.

More Related