PHP ou le web dynamique. 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.

Slides:



Advertisements
Présentations similaires
Novembre 2005 – Michel Desconnets PHP : théorie Objectif : introduire les concepts globaux permettant d'aborder la programmation en PHP.
Advertisements

Conception de Site Webs dynamiques Cours 5
Algorithmes et structures de données avancées Partie Conception de Sites Web dynamiques Cours 9 Patrick Reuter.
Algorithmes et structures de données avancées Partie Conception de Sites Web dynamiques Cours 8 Patrick Reuter.
Interactivé: L'Action Script.
Création de Pages Web Dynamiques
Cours n°2M2. IST-IE (S. Sidhom) UE 303 Promo. M2 IST-IE 2005/06 Conception dun système d'information multimédia Architecture trois-tiers : PHP/MySQL &
TP n°1 PHP LES BASES Premier programme Affichage
Personal Home Page / Hypertext Processor (PHP)
10:59:29 Programmation Web Programmation Web : PHP Jérôme CUTRONA
Techniques Internet de Base Licence 2 (Info, Maths, PC/PA) Université Jean Monnet Ruggero G. PENSA
14/06/07 Préparé par: Ing. Rodrigue Osirus (509) / , - Programmation Web coté Server avec.
1. Sommaire Quest-ce que PHP ? Les structures de base Traitements de base Traitements de chaînes Utilisation des tableaux Fonctions usuelles Formulaires.
CPI/BTS 2 Programmation Web Introduction au PHP
HELHA informatique de gestion
RESUMES Module II1 SOMMAIRE CYCLE 1 : Saisir – Afficher – Données
Les instructions PHP pour l'accès à une base de données MySql
Programmation multimédia 3
Introduction à la programmation (Java)
Introduction au langage PHP Réfs : Chap 3 p 49. Présentation PHP (Hypertext PreProcessor) est un langage de développement Web créé en 1994 par Rasmus.
Le langage Javascript pour le web
Principes de programmation
PHP Gestion des systèmes d’information Classe terminale
Contrôle de types Les types en programmation Expressions de types Un contrôleur de types Equivalence de types Conversions de types Généricité.
1 PHP 1.Langage PHP 1.1. Types de base, variables et constantes 1.2. Opérateurs et expressions 1.3. Instructions 1.4. Fonctions 2.Accès aux bases de données:
IFT 6800 Atelier en Technologies d’information
Web dynamique PhP + MySQL AYARI Mejdi 2006
LIFI-Java 2004 Séance du Jeudi 9 sept. Cours 1. La notion de langage Décrire une tâche à effectuer –programme Écrire à un haut niveau –facile pour lutilisateur.
PhP-MySQL Pagora 2012/2013 CTD 2. Première balise -Plusieurs types de balise - - … -Partout !
Formulaires, CGI et PHP David Gross-Amblard (CNAM-Vertigo/Cédric) Transparents originaux : Philippe Rigaux Projet 3I
L3 Module Libre Année universitaire Initiation à la Bioinformatique Jean-Michel RICHER.
Les Opérateurs Ils régissent toutes les opérations ou transformations sur les valeurs des variables. Opérateur d'affectation Opérateurs arithmétiques Opérateurs.
PHP 2° PARTIE : FONCTIONS ET FORMULAIRE
L’essentiel du langage C
Animateur : Med HAIJOUBI
PHP 1° PARTIE : LES BASES © BTS IRIS 2002 [tv] Présentation Historique
Javascript 1° PARTIE : LES BASES
PHP & My SQL.
Introduction au langage PHP Licence Pro Cours Internet / Intranet Utilité Historique Exemples Fonctions PHP Classes.
Département Technologie de l’Information et de la Communication
JavaScript Nécessaire Web.
PHP 5° PARTIE : LES COOKIES
JavaScript.
0 Objectifs de la session n°1  Revenir sur toutes les bases théoriques nécessaires pour devenir un développeur Web,  Découvrir l’ensemble des langages.
Un survol du language C.
 Syntaxe du langage PHP
420-B63 Programmation Web Avancée Auteur : Frédéric Thériault 1.
Cours LCS N°4 Présenté par Mr: LALLALI
Module : Pages Web Dynamiques (Production Électronique Avancée)
Programmation Web : PHP
 Formulaires HTML : traiter les entrées utilisateur
Création de pages Web Dynamiques Côté serveur (en PHP)
1 PHP 5 Notions fondamentales (niveau 1 – cours #2) Formation continue – Cégep de Sainte-Foy.
Initiation au JavaScript
Cours de :.
Initiation au web dynamique Licence Professionnelle.
Les bases de l’algorithmique
Introduction à PHP TOURNADRE Guillaume - Informatique Réseaux URL :
Module 133 Développer des applications Web Introduction à PHP.
CPI/BTS 2 Programmation Web Les sites dynamiques Prog Web CPI/BTS2 – M. Dravet – 02/10/2003 Dernière modification: 02/10/2003.
pour les programmeurs en C++ Java 2 Part 1 3 Histoire de Java Projet de connexion des machines: 1991 Le nom Java a été introduit dans un café Développé.
Introduction à l’utilitaire
Philippe Gandy - 8 septembre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
Principes et variables
Philippe Gandy – 10 novembre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
C++ BY AURÉLIEN MODULO MARION. PLAN DES TROIS PRÉSENTATIONS C++ avancé C++ orienté objet Bases de C++
PhP 2. Tableaux et structures de contrôle. Les tableaux Définition –Rassemblement d’un ensemble de valeurs portant le même nom de variable –Types de tableaux.
APP-TSWD Apprentissage Par Problèmes Techniques des Sites Web Dynamiques Licence Professionnelle FNEPI Valérie Bellynck, Benjamin Brichet-Billet, Mazen.
Transcription de la présentation:

PHP ou le web dynamique

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)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

php cli VS mod_php 2 versions php – php cli en ligne de commandes Chemin à mettre dans la variable denvironnement $PATH – mod_php Permet dembarquer 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)

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 dune 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

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

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

Le web statique

Le web dynamique typique

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

Hello world!! Côté serveur My First PHP Script

Version cgi (non embedded) "; echo " "; echo " My First PHP Script "; echo " "; echo " "; echo " Hello World "; echo " "; echo " "; ?>

Côté client My First PHP Script Hello World

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

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 ?>

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

Opérations sur les variables Tester le type dune 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);

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

Les strings les 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 "

Les strings les 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 '

Les strings caractères non imprimables \n nouvelle ligne \r retour à la ligne \t tabulation spécificité –"\r\n" sous windows –"\n" sous *nix –"\r " sous mac

Fonctions daffichage é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);

Opérateurs arithmétiques + pour l'addition - pour la soustraction * pour la multiplication / pour la division % pour la division entière

Opérateurs daffectation $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

Opérateurs de 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

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

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';

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';

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

Structure conditionnelle if( $cpt > 0 && $cpt < 4 ) { echo $cpt. est dans lintervalle ]0;4[; } elseif( $cpt >= 4 && $cpt < 10) { echo $cpt. est dans lintervalle [4;10[; } else { echo $cpt. est dans lintervalle ]10;+); }

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

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

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;

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]; }

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

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

passage forcé à l'itération suivante Continue permet de passer à litération suivante dune 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 " ".$libelle." "; } affichera tous les éléments du tableau langages sauf la valeur english

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 sil na 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 derreur) – require(file.php); inclure et exécuter le code de file.php (ce fichier doit exister sinon require renverra un message derreur) si le fichier na pas déjà été inclus par le script courant – require_once(file.php);

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 dun fichier fread ( resource $handle, int $length ) Lire un fichier en entier fread ($handle, filesize ($filename)) Fermer un fichier fclose ($handle)

fonctions Les fonctions sont des portions de code (entre { … })associés à un nom Les fonctions peuvent prendre des arguments dont il nest 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 dune déclaration de fonction le mot clé return : spécifie le résultat à renvoyer

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

Appel dune fonction <? $Total=234; $SousTotal=123; $Total=somme ($Total,$SousTotal); echo $Total;// affiche 357 ?>

Paramètres par défaut Il est possible dattribuer des valeurs par défaut aux arguments dune fonction Une valeur par défaut ne peut être quune constante Les arguments ayant une valeur par défaut doivent être placés après les arguments qui nen ont pas

Exemple dutilisation 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 ?>

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; } ?>

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

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

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 ?>

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"]; }

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).

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.

Variables prédéfinies: $_SESSION Un tableau associatif des valeurs stockées dans les sessions, et accessible au script courant. 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.

Variables prédéfinies: $_POST, $_GET, $_REQUEST $_GET : Un tableau associatif des valeurs passées au script courant via le protocole HTTP et la méthode GET $_POST : Un tableau associatif des valeurs passées au script courant via le protocole HTTP et la méthode POST $_REQUEST : Un tableau associatif des valeurs passées au script courant via le protocole HTTP et les méthodes GET et POST Si la directive register_globals est active (c'est mal), alors ces variables seront aussi rendues directement accessible dans le contexte d'exécution global. Toutes les super globales et leur valeurs sont affichées par la commande phpinfo()

Appel dynamique de fonctions call_user_func ($func, $arg) Permet dappeler dynamiquement la fonction $func avec $arg en paramètre $arg peut être un tableau PHP, une chaîne de caractères (séparée par des virgules)