PHP - get started

Download PHP - get started

Post on 08-Jul-2015

371 views

Category:

Technology

0 download

Embed Size (px)

TRANSCRIPT

<ul><li><p>PHPou le web dynamique</p></li><li><p>gnralitscrit par Ramsus Lerdorf en 1994 pour grer 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 franais dans la promotion du langage PHP (nexen.net) crit en de C et historiquement bas sur des bibliothques 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 franais http://php.net/manual/fr/index.php</p></li><li><p>php cli VS mod_php2 versions phpphp cli en ligne de commandesChemin mettre dans la variable denvironnement $PATHmod_php Permet dembarquer un interprteur php dans les process fils du dmon httpd2 fichiers de configuration de php.iniN.B certains projets utilisent maintenant le mme interprteur (UwAmp)</p></li><li><p>php.iniQuelques directivesregister_globals: rend les variables GET, POST, de COOKIE et de SESSION directement accessibles (dconseill!)post_max_size: taille maximale dune requte en mthode postupload_max_fliesize: taille maximale des fichiers ulpoadsmemory limit: taille de mmoire maximale alloue PHPextension_dir: spcifie le rpertoire dans lequel PHP doit chercher des extensions externes charger extension: quelles extensions doivent tre charges </p></li><li><p>Les extensions phpQuelques extensionssimpleXML (inclus en PHP5): fournit des outils trs simples et faciles utiliser pour convertir du XML en un objet qui peut tre manipul avec ses proprits et les itrateurs de tableaux. SQLite (inclus en PHP5): fait l'interface avec le moteur de base SQLite Embeddable SQL Database Engine (ne ncessite pas l'installation d'un serveur de BDD)MySQL: permet d'accder aux bases de donnes MySQL Pcre: permet la compatibilit avec les expressions rgulires Perl</p></li><li><p>Un standardsupport par de nombreux serveurs httpIIS, Netscape, Roxen, IPlanetmultiplateforme : *nix et windows (wamp, EasyPHP, xampp) propos massivement par les hbergeurs</p></li><li><p>Le web statique</p></li><li><p>Le web dynamique typique</p></li><li><p>Le langageDit de type embedded : le code PHP s'insre au milieu du code HTML = fin de portion de code PHPChaque instructions se termine par le caractre ; commentaire// commente une ligne entire /* */ 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 prdfinies </p></li><li><p>Hello world!!Ct serveur My First PHP Script </p></li><li><p>Version cgi (non embedded) </p></li><li><p>Ct client My First PHP Script Hello World </p></li><li><p>Les constantescrer une constantedefine("MaConstante", 5);Tester si une constante existedefined("MaConstante");Appeler une constante echo MaConstante; //affiche 5</p></li><li><p>Les variablesToutes les variables commence par le caractre $ suivi d'une lettre ou d'un _Le typage est implicite, il dpend de la valeur affecte </p></li><li><p>Les typesBoolean : Boolen Integer : Entier Rel : Double String : Chane de caractres Array : Tableau Object : Objet Tester le type dune variablegettype($var);Typer explicitementsettype($var, "type"); </p></li><li><p>Oprations sur les variablesTester le type dune variablegettype($var);Typer explicitementsettype($var, "type"); Tester si une variable existeisset($var);Dtruire une variable et librer la mmoire qui lui tait alloueunset($var);Tester si une variable est non affecte (i.e. =0 ou ="")empty($var);</p></li><li><p>transtypage </p><p>(int) , (integer) - type entier (bool) , (boolean) - boolen (double) , (float) , (real) - type double (string) - type chane de caractre (array) - type tableau (object) - type objet </p></li><li><p>Les stringsles dlimiteurs "..."toutes les variables contenues entre ces dlimiteurs seront values$MyColor="rouges"; echo "Mes souliers sont $MyColor";affiche Mes souliers sont rougescaractres chapps \\ pour afficher le caractre \ \$ pour afficher le caractre $ \" pour afficher le caractre " </p></li><li><p>Les stringsles dlimiteurs ...aucune des variables contenues entre ces dlimiteurs ne sera value$MyColor="rouges"; echo 'Mes souliers sont $MyColor';affiche Mes souliers sont $MyColorcaractres chapps \\ pour afficher le caractre \ \' pour afficher le caractre ' </p></li><li><p>Les stringscaractres non imprimables\n nouvelle ligne \r retour la ligne \t tabulation spcificit"\r\n" sous windows "\n" sous *nix"\r " sous mac</p></li><li><p>Fonctions daffichagecrit sur la sortie standard print('hello '.$nom);echo("hello $nom");print('hello '.$nom); crit de manire formate comme en C sur la sortie standard printf("hello %s", $nom);crit de manire lisible les variables complexes, notamment les tableaux et les objetsprint_r($tableau);</p></li><li><p>Oprateursarithmtiques+ pour l'addition - pour la soustraction * pour la multiplication / pour la division % pour la division entire </p></li><li><p>Oprateursdaffectation$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</p></li><li><p>Oprateursde comparaisonsgalit de $x et $y $x == $y galits des valeurs et des types de $x et $y$x === $y$x est strictement infrieur $y $x &lt; $y$x est strictement suprieur $y $x &gt; $y$x est infrieur ou gal $y $x =&lt; $y$x est suprieur ou gal $y $x =&gt; $y</p></li><li><p>Oprateurs logique &amp; concatnationlogique&amp;&amp; et logique || ou logique ! ngation concatnation : . concatne deux chaines de caractres </p></li><li><p>Les tableauxle constructeur permettant de crer un tableau est array() par dfaut l'indexation d'un tableau commence 0 $langages = array('franais','english','deutsch');il est possible de crer un tableau en lui affectant des valeurs $langages[] = 'franais';$langages[] = 'english';$langages[] = 'deutsch';</p></li><li><p>Les tableauxspcifier explicitement les indices$langages[0] = 'franais';$langages[1] = 'english';$langages[2] = 'deutsch';indexer des tableaux avec des chanes de caractres (tableaux associatifs) $langages = array( 'fr' =&gt; 'franais', 'en' =&gt; 'english', 'de' =&gt; 'deutsch);sans le constructeur $langages['fr'] = 'franais';$langages['en'] = 'english';$langages['de'] = 'deutsch';</p></li><li><p>Fonctions sur les tableauxcompte les lments du tableau $langagescount($langages);renvoit TRUE si la chane caractre 'deutsch' est un lment du tableauin_array('deutsch', $langages);ajoute l'lmnt 'chinese' la fin du tableau (empile)array_push($langages, 'chinese');renvoit le dernier lment du tableau (dpile) array_pop($langages);il existe de nombreuses fonctions sur les tableaux </p></li><li><p>Structure conditionnelleif( $cpt &gt; 0 &amp;&amp; $cpt &lt; 4 ){ echo $cpt.est dans lintervalle ]0;4[;}elseif( $cpt &gt;= 4 &amp;&amp; $cpt &lt; 10){ echo $cpt.est dans lintervalle [4;10[;}else{ echo $cpt.est dans lintervalle ]10;+);} </p></li><li><p>structure de choixswicth($animal){ case 'chien' : echo " ouaf ouaf "; break; case 'chat' : echo " miaou miaou "; break; default : echo $Animal." nest pas un animal domestique ";} </p><p>instruction break est ncessaire si les actions qui le suivent n'ont pas tre excutes </p></li><li><p>structure de boucle$NbDeCoup=6; $i=0; While($i != $NbDeCoup) { $CoupAJouer = $NbDeCoup - $i; echo "il vous reste ". $CoupAJouer. " jouer"; $i++; } </p></li><li><p>structure de boucle inverse $NbDeCoup=6; $i=0; do { $CoupAJouer = $NbDeCoup - $i; echo "il vous reste ". $CoupAJouer. " jouer"; $i++; } While($i != $NbDeCoup); echo la partie est finie; </p></li><li>structure de boucle itrative$tab=Array(2,4,8,9,0); for ( $i = 1 ; $i </li><li><p>structure de parcours de tableau$langages = array('fr' =&gt; ' franais', 'en' =&gt; 'english', 'de' =&gt; 'deutsch');foreach ( $langages as $libelle){echo "".$libelle."";}</p><p>affichera franais english deutsch </p><p>foreach ( $langages as $key =&gt; $libelle){echo "".$key." : ".$libelle."";}affichera fr : franais en : english de : deutsch </p></li><li><p>sortie force de bouclel'instruction break pemet de quitter prmaturment une boucle foreach($langages as $libelle){if($libelle == "english") { break;}}</p><p>stoppera le parcours du tableau ds que la valeur "english" est rencontre </p></li><li><p>passage forc l'itration suivanteContinue permet de passer litration suivante dune boucle sans excuter le code qui suit cette instruction dans le bloc de la boucle</p><p>foreach($langages as $libelle){if($libelle == "english") { continue; } echo "".$libelle."";}</p><p>affichera tous les lments du tableau langages sauf la valeur english </p></li><li><p>Inclusion / factorisationinclure et excuter le code de file.php si le fichier existeinclude(file.php); inclure et excuter le code de file.php si le fichier existe et sil na pas dj t inclus par le script courantinclude_once(file.php);inclure et excuter le code de file.php (ce fichier doit exister sinon require renverra un message derreur)require(file.php); inclure et excuter le code de file.php (ce fichier doit exister sinon require renverra un message derreur) si le fichier na pas dj t inclus par le script courantrequire_once(file.php);</p></li><li><p>Ouvrir / crire un fichierOuvrir un fichierfopen ( string $filename , string $mode)Renvoie un identifiant de ressource. $mode peut tre r, w, r+ crire dans un fichierfwrite ( resource $handle , string $string)Lire length octe dun fichierfread ( resource $handle , int $length )Lire un fichier en entierfread ($handle, filesize ($filename)) Fermer un fichierfclose ($handle)</p></li><li><p>fonctionsLes fonctions sont des portions de code (entre { })associs un nom Les fonctions peuvent prendre des arguments dont il nest pas ncessaire de spcifier le type La liste des arguments est entre () , spars par des virgules le mot cl function : indique le dbut dune dclaration de fonction le mot cl return : spcifie le rsultat renvoyer </p></li><li><p>Fonction typique </p></li><li><p>Appel dune fonction </p></li><li><p>Paramtres par dfautIl est possible dattribuer des valeurs par dfaut aux arguments dune fonction Une valeur par dfaut ne peut tre quune constante Les arguments ayant une valeur par dfaut doivent tre placs aprs les arguments qui nen ont pas </p></li><li><p>Exemple dutilisation de paramtres par dfaut </p></li><li><p>Porte des variablesUne variable dfinie dans une fonction a une porte locale la fonction </p></li><li><p>Variables locales la fonction </p></li><li><p>le mot cl global </p></li><li><p>Variables globales au scriptToutes les variables globales du script </p></li><li><p>Variables prdfinies: $GLOBALS$GLOBALS est un tableau associatif contenant les rfrences sur toutes les variables globales du script. Les noms des variables sont les index du tableau. Cette fonction est strictement quivalente la prcdente function somme (){ $GLOBALS["b"]=$GLOBALS[a"]+$GLOBALS["b"];} </p></li><li><p>Variables prdfinies: $_SERVER$_SERVER est un tableau contenant des informations comme les en-ttes, dossiers et chemins du script. $_SERVER ['REQUEST_METHOD']get, post, head, put$_SERVER ['QUERY_STRING']La chane de requte, si elle existe, qui est utilise pour accder 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 chane qui dcrit 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'hte qui lit le script courant (rsolution DNS inverse).</p></li><li><p>Variables prdfinies: $_COOKIEUn tableau associatif des valeurs passes 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'excution global. </p></li><li><p>Variables prdfinies: $_SESSIONUn tableau associatif des valeurs stockes 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'excution global. </p></li><li><p>Variables prdfinies: $_POST, $_GET, $_REQUEST$_GET : Un tableau associatif des valeurs passes au script courant via le protocole HTTP et la mthode GET $_POST : Un tableau associatif des valeurs passes au script courant via le protocole HTTP et la mthode POST$_REQUEST : Un tableau associatif des valeurs passes au script courant via le protocole HTTP et les mthodes 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'excution global.Toutes les super globales et leur valeurs sont affiches par la commande phpinfo()</p></li><li><p>Appel dynamique de fonctionscall_user_func ($func, $arg)</p><p>Permet dappeler dynamiquement la fonction $func avec $arg en paramtre$arg peut tre un tableau PHP, une chane de caractres (spare par des virgules)</p></li></ul>