Php Med Trabelsi

145
    , ' , . , . 1

Transcript of Php Med Trabelsi

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 1/145

Site Web Dynamique

Un site Web dynamique est un site Web dont les pages peuvent être générées dynamiquement, c'est-

à-dire à la demande, contrairement au site Web

.

La combinaison de données et de programmes qui 

les distribuent ou les manipulent, de façon

autonomes ou par interaction des utilisateurs.

1

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 2/145

Site Web Dynamique

Langage côté client :

Traité par la machine qui accueille le logiciel denavigation.Ses résultats peuvent varier en fonction de plate-

.

Un programme en JavaScript pourra fonctionnersous Netscape et poser problème sous Internetexplorer. Les résultats peuvent être différentssuivant la machine (PC, Mac)Sont indépendants du serveur et donc del’hébergent

2

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 3/145

Site Web Dynamique

Langage côté serveur :

Le travail d’interprétation du programme est réalisépar le serveurSont indépendants de la machine et du logiciel de

.Sont compatibles avec tous les navigateurs etToutes leurs versions.Permettent de masquer les sources de ses

programmes Nécessitent de recharger la pagechaque fois que celle-ci est modifiée.

3

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 4/145

Langage de création de page webdynamiques côté serveur : PHP

PHP c’est Quoi ? :

Un langage de scripts permettant la créationd’applications Web

Indépendant de la plate-forme utilisée puisqu’il estexécuté côté serveur et non côté client.

La syntaxe du langage provient de celles du langage

C, du Perl et de Java

4

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 5/145

Langage de création de page webdynamiques côté serveur : PHP

PHP c’est Quoi ? :

PHP (pour : HypertextPreprocessor), est un langagede scripts libre principalement utilisé pour produiredes pages web dynamiques via un serveur HTTP,

mais pouvant également fonctionner commen'importe quel langage interprété de façon locale,en exécutant les programmes en ligne decommande. PHP est un langage impératif disposant

depuis la version 5 de fonctionnalités de modèleobjet complètes.

5

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 6/145

Langage de création de page webdynamiques côté serveur : PHP

PHP c’est Quoi ? :

Créé en 1994 par Rasmus Lerdorf pour les besoins de

son propre site, ce langage devenu universel est issu du

lan a e C com lètement orienté web communi uant

avec des bases de données et créant des applicationssimples ou dynamiques.

En 2002 plus de 8 millions de sites web à travers le

monde utilisaient le PHP et en 2004, plus de 15millions, (selon des sources non officielles).

6

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 7/145

Les versions du PHP

4.0.0 22 mai 2000

Ajoute système d'analyseur syntaxique

plus avancé appelé le Zend engine. Ce

moteur procède en deux étapes d'analysepuis d'exécution.

4.1.010 décembre

2001

Introduit les superglobals ($_GET, $_POST,

SESSION etc. [

7

4.0

 _

4.2.0 22 avril 2002

Désactive register_globals par default. Les

données en provenance du réseau ne sont

plus insérées directement dans l'espace

de nom global, réduisant ainsi les

possibilités de failles de sécurité[

4.3.027 décembre

2002Introduit le CLI, en addition au CGI

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 8/145

Les versions du PHP

4.0

4.4.011 juillet

2005

Ajout du manuel (pages accessibles par la

commande man) pour les scripts phpize

and php-config

4.4.83 janvier

Correction de bugs et de failles de

sécurité. Devait être la dernière correction

de PHP 4.4. Mises à jour de sécurité

8

uniquement jusqu'au 8 août 2008 sinécessaire.

4.4.97 août 20

08

Plus de sécurité et résolution de bugs.

Dernière version de PHP 4.4.

5.0 5.0.013 juillet

2004

Zend Engine II avec un nouveau modèle

objet.

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 9/145

Les versions du PHP

5.1.0 24 novembre 2005

Amélioration de performances

par l'introduction de compiler

variables dans un moteur PHP

repensé.

5.2.0 2 novembre 2006Activation par défaut de

l'extension «filter»

9

5.05.2.8 8 décembre 2008 Correction urgente d'un bug

5.2.9 26 février 2009

5.2.10 18 juin 2009

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 10/145

Les versions du PHP

5.2.11 17 septembre 2009

5.2.12 17 décembre 2009

10

5.0 5.2.13 25 février 2010

5.2.13 25 février 2010

5.3.0 30 juin 2009

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 11/145

Les versions du PHP

5.0

5.3.119 novembre

2009

Correction d'un problème au niveau du

téléchargement de fichier pouvant être

utilisé pour effectuer une attaque par déni

de service

5.3.2 4 mars 2010 Correction d'un grand nombre de bugs

11

5.3.3Pas de date

fixée

5.3.3RC2 (2 juillet 2010). Introduit PHP-

FPM

6.0 6.0.0 Pas de datefixée

Support de Unicode; suppression de

l'extension ereg, de register_globals,magic_quotes et safe_mode; Alternative

PHP Cache

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 12/145

Langage de création de page webdynamiques côté serveur : PHP

PHP Avantages? :

Sa grande facilité de connexion avec la base de

données MySQL permet d'élaborer des applications

ra ides avec une actualisation en tem s réel des

données.Libre,

Gratuit

simple d'utilisation et d'installation, PHP est unlangage de programmation orienté web qui s'intègre

parfaitement aux pages HTML.

12

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 13/145

Documentation en ligne

Pour obtenir en ligne toute la documentation officielle

(en français) sur une commande, tapez l’URL suivantedans la barre d’adresse de votre navigateur Internet :

Et rajouter en fin d’URL le nom de la commande.

Exemple :

http://fr.php.net/echo

13

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 14/145

Commentaires en PHP

Un script PHP se commente comme en C :

Exemple :<?PHP

// commentaire de fin de ligne 

/* commentairesur plusieurs

lignes */

?>

Tout ce qui se trouve dans un commentaire est ignoré.

Il est conseillé de commenter largement ses scripts.

14

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 15/145

Variables en PHP

Le typage des variables est implicite en PHP. Il n’est

donc pas nécessaire de déclarer leur type au préalableni même de les initialiser avant leur utilisation.

Les identificateurs de variable sont précédés du

symbole « $ » (dollars).Exemple : $toto.

Les variables peuvent être de type entier (integer), réel

(double), chaîne de caractères (string), tableau (array),

booléen (boolean).

15

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 16/145

Les constantes en PHP

Les constantes PHP ne sont préfixées par aucun

symboles. Elles sont déclarée de la façon suivante:

define(‘‘nom_constante’’,‘‘valeur’’);

Exemple:

define(‘‘nom’’, ‘‘Mohamed’’);

Dans ce cas la constante nom vaut la valeur Mohamed.Les constantes ne sont définie qu’une seule fois dans le

script.

Leurs valeurs restent inchangées et leurs

identificateurs ne sont pas sensibles à la casse

(contrairement aux variables).

16

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 17/145

Fonctions agissant sur les variables

empty($var) :

teste si la variable est vide ou non (renvoie true ou

false)

isset($var) :

teste si la variable existe ou non (renvoie true ou false) 

unset($var) :détruit une variable

gettype($var) :

retourne le type de la variable

17

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 18/145

Les types des variables

PHP supporte quatre types scalaires :

•Booléen

•Entier

•nombre à virgule flottante 

•chaîne de caractèresPHP supporte deux types composés :

•Tableau

•objet

PHP supporte deux types spéciaux

18

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 19/145

Les types des variables

1)Booléens:

Vous pouvez utiliser les mots-clés 'TRUE' et

'FALSE' pour spécifier une valeur de type booléen.

Ces mots-clés sont insensibles à la casse.

2)Entiers:

Un entier est un nombre de l'ensemble des entiersnaturels Z : Z = {...., -2, - 1, 0, 1, 2, ...}.

Les entiers peuvent être spécifiés en base décimale

(dite aussi base 10), en hexadécimale (base 16) ou

octale (base 8).

Les entiers peuvent être optionnellement précédés par

le signe plus ou moins (- ou +).

19

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 20/145

Les types des variables

3)Les nombres décimaux

Les nombres décimaux (connus aussi sous le Vocable

de "double", "float" ou "nombre rééls") peuvent être

sp c s en u san a syn axe su van e :

<?php

$a=1.123;

$b=1.2e3;$c=7E -10;

?>

20

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 21/145

Les types des variables

4)Les chaines de caractères :

Les chaînes de caractères sont des séquences de

caractères.

En PHP, un caractère est un octet et il y en 256 de

possibles.

Une chaîne peut être spécifiée de trois manières différentes :•guillemets simples

•guillemets doubles

•syntaxe Here Doc (pour plus de détails voir la doc PHP)

Note : La taille n'est pas un problème majeur pour unechaîne. Elle peut devenir très grande sans problème. Il

n'y a pas à s'en faire pour cela.

21

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 22/145

Les types des variables

4)Les chaines de caractères :

a)Guillemets simples :Le moyen le plus simple de spécifier une chaîne de

caractères est d'utiliser les uillemets sim les : '. 

Pour spécifier un guillemet simple littéral, vous devezl'échapper avec un anti-slash (\).

Contrairement aux autres syntaxes, les variables

présentes dans la chaîne ne seront PAS remplacées par

leurs valeurs.

22

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 23/145

Les types des variables

4)Les chaines de caractères :

b)Guillemets doublesSi la chaîne est entourée de guillemets doubles ("), PHP

va com rendre certaines sé uences de caractères : 

\n Nouvelle ligne\r Retour à la ligne

\t Tabulation horizontale

\\ Anti-slash

\$ Caractère $

\" Guillemets doubles

23

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 24/145

Les types des variables

4)Les chaines de caractères :

Quelques fonctions sur les chaines:

• strlen($str) :

Retourne la taille de la chaîne $str en caractères. 

• strtolower($str) :Conversion en minuscules

• strtoupper($str) :

Conversion en majuscules

• ucfirst($str) : Convertit la première lettre en

majuscule

24

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 25/145

Les types des variables

4)Les chaines de caractères :

Quelques fonctions sur les chaines:

• trim($str) :

Suppression des espaces de début et de fin de chaîne 

• substr($str,$i,$j) :retourne une sous chaîne de $str de taille $j et

débutant à la position $i

• addslashes($str) :

déspécialise les caractères spéciaux

• ord($char):

retourne la valeur ASCII du caractère $char

25

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 26/145

Les types des variables

5)Les Tableaux :

Les Tableaux a indice :Déclaration :

 

Affectation :$fruits[0]= "pomme";

$fruits[1]= "banane";

$fruits[] .= "orange";// équivaut a $fruits[2]= "orange"

$fruits= array( "pomme", "banane", "orange" );

26

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 27/145

Les types des variables

5)Les Tableaux :

Les Tableaux a indice :Fonctions manipulant les tableaux:

 ,

retournent le nombre d’éléments du tableauin_array($var,$tab) :

dit si la valeur de $var existe dans le tableau $tab

list($var1,$var2…) :transforme un tableau en liste de variables.

27

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 28/145

Les types des variables

5)Les Tableaux :

Les Tableaux a indice :Fonctions manipulant les tableaux:

 ,

Retourne un tableau contenant un intervalle de valeursshuffle($tab) :

Mélange les éléments d’un tableau

sort($tab) :Trie alphanumérique les éléments du tableau

28

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 29/145

Les types des variables

5)Les Tableaux :

Les Tableaux a indice :Fonctions manipulant les tableaux a indice:

 

Trie alphanumérique inverse les éléments du tableauimplode($str,$tab), join :

retournent une chaîne de caractères contenant les

éléments du tableau $tab joints par la chaîne de jointure $str

29

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 30/145

Les types des variables

5)Les Tableaux :

Les Tableaux a indice :Fonctions manipulant les tableaux:

 ,

Retourne un tableau dont les éléments proviennent dela chaîne $str et dont le délimiteur est $delim

array_merge($tab1,$tab2,$tab3…) :

Concatène les tableaux passés en argumentsarray_rand($tab) :

Retourne un élément du tableau au hasard

30

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 31/145

Les types des variables

5)Les Tableaux :

Les Tableaux associatifs :Déclaration :

 

// Comme un tableauAffectation :$calories["pommes"]= 300;

$calories["banane"]= 130;$calories["litchie"]= 30;

// C'est tout petit un litchie

31

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 32/145

Les types des variables

5)Les Tableaux :

Les Tableaux associatifs :Fonctions manipulant les tableaux a indice:

Pour tester l’existance d’un element isset() .Syntaxe avec exemple :

if( isset( $calories["pommes"] ) )

{echo "une pomme contient ", $calories["pommes"] , "

calories\n« ;}

Else{

echo "pas de calories definies pour la pomme\n« ;}

32

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 33/145

Les types des variables

5)Les Tableaux :

Les Tableaux associatifs : Fonctions manipulant les tableaux associatifs:

 , , ,

Ces fonction de trie conservent la relation entre la cléet la valeur , généralement c’est le cas d’un tableau

associatif .

Asort trie par valeur croissent ;Arsort trie par valeur décroissent ;

Ksort trie par index (key) décroissent ;

33

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 34/145

Les types des variables

5)Les Tableaux :

Les Tableaux associatifs : Fonctions manipulant les tableaux associatifs:

array_count_values($tab) :

retourne un tableau associatif contenantles valeurs du tableau $tab comme clés et leurs

fréquence comme valeur (utile pour évaluer les

redondances)

array_keys($tab) :retourne un tableau contenant les clés du tableau

associatif $tab

34

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 35/145

Les types des variables

5)Les Tableaux :

Les Tableaux associatifs : Parcours d’un tableau associatif :

ersonne = arra ‘’Nom’’ => ‘’César’’ ‘’Prénom’’ =>

‘’Jules’’);Exemple 1 :

foreach($personne as $elem) {

echo $elem;

}

Ici on accède directement aux éléments du tableau

comme c’est le cas pour les tableaux indexés

35

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 36/145

Les types des variables

5)Les Tableaux :

Fonctions sur les Tableaux :

 

Place le pointeur sur le premier élémentcurrent($tab) :

Retourne la valeur de l’élément courant

next($tab) :Place le pointeur sur l’élément suivant

36

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 37/145

Les types des variables

5)Les Tableaux :

Fonctions sur les Tableaux :

 

Place le pointeur sur l’élément précédanteach($tab) :

Retourne la paire clé/valeur courante et avance le

pointeur

37

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 38/145

Les opérateurs

Opérateurs arithmétiques :

+ (addition)-(soustraction)

*

/ (divisé)% (modulo)++ (incrément)--(décrément).

38

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 39/145

Les opérateurs

Opérateurs d’assignement :

= (affectation)*= ($x*=$y équivalent à($x=$x*$y)

/=, +=, -=,%=

 Opérateurs logiques :and, && (et), or, || (ou), xor (ou exclusif), ! (non)

Opérateurs de comparaison :== (égalité), < (inférieur strict), <= (inférieur large), >,

>=, !=(différence)

39

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 40/145

l’opérateur ternaire.

Il existe un opérateur très spécial qui équivaut à une

structure conditionnelle complexe if then else à ladifférence qu’il renvoie un résultat de valeur pouvant

ne pas être un booléen : l’opérateur ternaire.

 

(condition)?(expression1):(expression2);

Si la condition est vrai alors évalue et renvoie

l’expression1 sinon évalue et renvoie l’expression2.Exemple :$nbr = ($toto>10)?($toto):($toto%10);

40

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 41/145

Fonctions mathématiques

PHP dispose d’une grande série de fonctions

mathématiques.

Quelques fonctions:

 • a s x : renvo e a va eur a so ue e x

• ceil($x) : arrondi supérieur• floor($x) : arrondi inférieur

• pow($x,$y): x exposant y

• round($x,$i) : arrondi de x à la ième décimale

41

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 42/145

Fonctions mathématiques

• max($a, $b, $c …) : retourne l’argument de valeur

maximum• min($a, $b, $c …) : retourne l’argument de valeur

minimum

 

Et aussi : cos, sin, tan, exp, log, sqrt… ainsi que desconstantes tels que M_PI, M_E

42

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 43/145

Les structures de contrôle

La syntaxe des structures de contrôle est la même que

celle en langage C.

Structures conditionnelles :

con on

{ traitement 1}elseif(condition 2-1){ traitement 2-1}

else{ traitement 2-2}

43

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 44/145

Les structures de contrôle

Structures conditionnelles :

Switch ( paramètre_index )

{

 case valeur 1 : { traitement 1 } break;

case valeur 2 : { traitement 2 } break;

default : { traitement par défaut }

}

44

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 45/145

Les structures de contrôle

Structures de boucles :

for( $i=$n ; $i<$m ; $i++ )

{Suite de traitement}

while( condition )

{Suite de traitement}

do{Suite de traitement}

while( condition )

45

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 46/145

Les structures de contrôle

Structures de boucles :

Saut inconditionnel$x=1

=

if ($x == 7) {echo "division par 0";$x++; continue;

}

$a = 1/($x-7);echo "$a<br>"; $x++

}

46

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 47/145

Les structures de contrôle

Structures de boucles :

Arrêt inconditionnel :for ($x=1; $x<=10; $x++) {

= -

if ($a == 0) { echo"division par 0"; break; }echo "1/$a<br>"; }

Arrêt d'exécution du script :commande exit

47

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 48/145

Les fonctions

Déclaration et appel d’une fonction

Function nom_de_fonction($arg 1,$arg 2,.…$arg n){

déclaration des variables ;

bloc d’instructions ;

//fin du corps de la fonctionReturn $resultat ;}

48

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 49/145

Les fonctions

Déclaration et appel d’une fonction

Exemple :

<? h

Function ma_fonction ($ma_var1, $ma_var2, $ma_var3){if ($ma_var1 == $ma_var2) return (TRUE);

else if ($ma_var1 > $ma_var3) return (FALSE);}

?>

49

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 50/145

Les fonctions

Variable locale et variable globale d’une fonction :

Toute variable déclarée au sein d’une fonction est de

portée locale de cette fonction.

 e n es pas reconnue ans e res e u programme.

global permet de travailler sur une variable de portéeglobale au programme.

Le tableau associatif $GLOBALS permet d’accéder aux

variables globales du script ($GLOBALS[‘’var’’] accède àla variable $var).

50

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 51/145

Les fonctions

Variable locale et variable globale d’une fonction :

Exemple :Function change() {

global $var;

// définit $var comme globale

$GLOBALS[‘’toto’’] ++;

// incrémente la variable globale $toto

$var++;

// cela sera répercuté dans le reste du programme}

51

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 52/145

Les fonctions

Variable locale et variable globale d’une fonction :

On peut donner une valeur par défaut aux argumentslors de la déclaration de la fonction.

Exemple :Function Set_Color ($color=‘’black’’)

{

global $car;

$car[‘’color’’] = $color;}

52

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 53/145

Les fonctions

Forcer le passage de paramètres par référenceExemple :

function change(&$var) {// force le passage par référence

$var += 100; 

// incrémentation de +100}$toto = 12;

// $toto vaut 12

change($toto);

echo $toto;// $toto vaut 112

53

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 54/145

Les fonctions

Même sans paramètre, un entête de fonction doit

porter des parenthèses ( ). Les différents arguments

sont séparés par une virgule et le corps de la fonctionest délimité par des accolades { }.

function bonjour() {

// passage d’aucun paramètre

echo ‘’Bonjour’’;}

function GetColor() {

// retour d’une variablereturn ‘’black’’;}

54

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 55/145

Les fonctions

Il est possible de faire retourner plusieurs valeurs d’unefonction en utilisant les tableaux ayant pour éléments

les variables à t retourner. Dans l’a el de la fonction, il

faudra alors utiliser la procédure list() qui prend enparamètre les variables à qui ont doit affecter les

valeurs retournées. On affecte à list() le retour de la

fonction.

55

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 56/145

Les fonctions

Exemple :

function trigo($nbr){

return array(sin($nbr), cos($nbr), tan($nbr));

re our un a eau

}$r = M_PI;

list($a, $b, $c) = trigo($r);

/* affectation aux variables $a,$b et $c des élémentsdu tableau retourné par la fonction trigo */

56

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 57/145

Les inclusions

On peut inclure dans un script PHP le contenu d’unautre fichier.

re uire insert dans le code le contenu du fichier

spécifié même si ce n’est pas du code php.( équivalent au préprocesseur #include du C )

Syntaxe:

require(‘’fichier.php’’);

57

l

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 58/145

Les inclusions

include évalue et insert à chaque appel (même dans

une boucle) lecontenu du fichier passé en argument.

Syntaxe:

include(‘’fichier.php’’);

Les inclusions sont très utiles lors de l’appel d’une base

de donnée.

Les paramètres de connexions sont stockés sur un fichiers à part.

58

L i

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 59/145

Les sessions

Les sessions a quoi sert?

Les sessions permettent le passage des variables

(variables de session) d’une page à une autre tout au

cours de la visite du site web.

Les variables de session ne sont pas visibles dans l’URLet peuvent être de types différents (tableau, float…).

Cette méthode permet de conserver les paramètres de

connexions d’un visiteur et conserver ses choix(sauvegarder son panier ecommerce par exemple)

59

L i

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 60/145

Les sessions

Les sessions a quoi sert?

Les informations sont stockées dans desfichiers, sur le serveur, à chaque session correspond un

fichier. Chaque session est désignée par un nom et un

identifiant. Lorsque le visiteur accepte les cookies,

l'identifiant de la session est stocké dans un cookie,

dans le cas contraire, il existe un autre moyen de

stocker l'identifiant. Normalement, la session est

détruite ou à la fermeture du navigateur, ou au bout de30 minutes. Cette valeur peut être modifiée dans le

fichier php.ini du serveur.

60

L i

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 61/145

Les sessions

Démarrer une session :

Syntaxe :

<?php session_start(); ?>

Ce code permet de démarrer une session. Si un fichier

existe sur le serveur pour cette session, les variables de

sessions seront récupérées, si ce n’est pas le cas, un

nouveau fichier sera créé. Notez que code est à placé

tout au début de votre page, avant tout code HTML, car

la session ne peut etre demarrer que si le cache dunavigateur est vide.

61

Les sessions

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 62/145

Les sessions

Créer une variable de session :

Les variables de sessions sont accessibles, une fois que

la sessions est démarrée, via un tableau super global :$_SESSIONSyntaxe : <?php $_SESSION['variable'] = $valeur ; ?>

 Nous créons ici une variable de session nommée

variable qui vaut $valeur

Savoir si une variable de session existe

Pour savoir si la variable de session variable existe:

Syntaxe : <?php if(isset($_SESSION['variable']))echo 'La variable "variable" existe !'; ?>

62

Les sessions

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 63/145

Les sessions

Utiliser la valeur d’une variable de session

Si vous voulez utiliser la valeur d’une variable de

session, vous devez passez par $_SESSIONSyntaxe : <?php if(isset($_SESSION['variable']))

echo 'La variable "variable" existe et vaut: ' .

$_SESSION['variable']; ?>

Supprimer une variable de session

Pour supprimer une variable de session, il faut utiliser

la fonction unset()

Syntaxe : <?php unset($_SESSION['variable']);echo 'La variable de session "variable" est maintenant

détruite'; ?>

63

Les sessions

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 64/145

Les sessions

Détruire toutes les variables de session

La fonction session_unset() détruit toutes les variables

de session.Syntaxe : <?php session_unset(); ?>

Détruire une session

 La fonction session_destroy() permet de détruire une

session.Syntaxe : <?php session_destroy(); ?>

La session doit être déclarée dans le code tout en haut

de votre page car le cache du navigateur doit être videpour démarrer une session. Aucun code HTML avant le

démarrage d'une session !!

64

Le langage PHP Les variables

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 65/145

Le langage PHP Les variables

d'environnement 

Les variables d'environnement sont, comme leur

nom l'indique, des données stockées dans desvariables permettant au programme d'avoir des

informations sur son environnement.

L'environnement, dans le cas du PHP est soit le

serveur soit le client.

Ces variables sont créées par le serveur à

chaque fois que le script PHP est appelé. Le serveurles lui fournit en paramètres cachés lors de

l'exécution de l'interpréteur.

65

Le langage PHP Les variables

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 66/145

Le langage PHP Les variables

d'environnement 

Elles permettent notamment d'avoir des informations

sur le type de serveur, son administrateur, la date àlaquelle le script a été appelé, l'adresse IP et le type de

navigateur du client.

On peut donc classer les variables d'environnement en

deux catégories:

les variables d'environnement dépendant du clientles variables d'environnement dépendant du serveur

66

Le langage PHP Les variables

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 67/145

Le langage PHP Les variables

d'environnement 

Les variables d'environnement dépendant du client 

Variabled'environnement

Description

$AUTH_TYPE Il s'agit de la méthode d'authentification qui a été utilisée

67

.

$COMSPEC Localisation de l'interpréteur de commandes sur la machine(Sous Windows).

$CONTENT_TYPE Type de données contenues dans le corps de la requête. Il

s'agit du type MIME des données.

$DOCUMENT_RO

OTRacine des documents sur le serveur.

$DOCUMENT_URI Adresse du script PHP en relatif (à partir de la racine du

serveur).

Le langage PHP Les variables

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 68/145

Le langage PHP Les variables

d'environnement 

Les variables d'environnement dépendant du client 

$HTTP_ACCEPT Types MIME reconnus par le serveur (séparés par desvirgules).

$HTTP_ACCEPT_ENCO Types d'encodage que le serveur peut réaliser

68

, .

$HTTP_ACCEPT_LANGUAGE Langue utilisée par le serveur (par défaut en-us).

$HTTP_CONNECTION Type de connexion ouverte entre le client et le serveur

(par exemple Keep-Alive).

$HTTP_HOST Nom d'hôte de la machine du client (associée à

l'adresse IP).$HTTP_ACCEPT Types MIME reconnus par le serveur (séparés par des

virgules).

Le langage PHP Les variables

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 69/145

Le langage PHP Les variables

d'environnement 

Les variables d'environnement dépendant du client 

$HTTP_REFERER URL de la page qui a appelé le script PHP.

$HTTP_USER_AGENT Cette variable permet d'avoir des informations sur le

type de navigateur utilisé par le client, ainsi que son

69

 

système d'exploitation.

$LAST_MODIFIED Date et heure de dernière modification du fichier.

$PATH Il s'agit du chemin d'accès aux différents répertoires sur

le serveur.

$PATH_INFOChemin d'accès au script PHP en relatif (de la racine duserveur jusqu'au script PHP).

$PHP_SELF Nom du script PHP.

Le langage PHP Les variables

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 70/145

Le langage PHP Les variables

d'environnement 

Les variables d'environnement dépendant du client 

$REDIRECT_URL L'URL vers laquelle le navigateur du client a été redirigé.

$QUERY_STRINGIl s'agit de la partie de l'URL (ayant servie à accéder au

' '

70

.

de cette manière que sont transmises les données d'un

formulaire dans le cas de la méthode GET.

$REMOTE_ADDR Cette variable contient l'adresse IP du client appelant

le script CGI.

REMOTE_PORT

Cette variable permet de savoir le port sur lequel larequête HTTP a été envoyée au serveur

$REDIRECT_URL L'URL vers laquelle le navigateur du client a été redirigé.

Le langage PHP Les variables

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 71/145

g g

d'environnement 

Les variables d'environnement dépendant du client 

$QUERY_STRINGIl s'agit de la partie de l'URL (ayant servie à accéder au

script PHP) située après le point d'interrogation. C'est

de cette manière que sont transmises les données d'un

71

formulaire dans le cas de la méthode GET.

SCRIPT_FILENAME Chemin d'accès complet au script PHP. Sous Windows, il

sera de la forme: c:/php/php.exe

SCRIPT_NAME Chemin d'accès relatif (par rapport au chemin d'accès à

la racine Web ($DOCUMENT_ROOT)) au script PHP.

SCRIPT_FILENAME Chemin d'accès complet au script PHP. Sous Windows, il

sera de la forme: c:/php/php.exe

Le langage PHP Les variables

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 72/145

g g

d'environnement 

Les variables d'environnement dépendant du serveur 

Variabled'environnement Description

 

72

 _ Date actuelle au format GMT.

$DATE_LOCAL Date actuelle au format local.

$DOCUMENT_ROOT Racine des documents Web sur le serveur.

$GATEWAY_INTERFACE Version des spécifications CGI utilisées par le serveur.

$HTTP_HOST Nom de domaine du serveur.

$SERVER_ADDR Adresse IP du serveur.

Le langage PHP Les variables

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 73/145

g g

d'environnement 

Les variables d'environnement dépendant du serveur 

$SERVER_ADMINAdresse de l'administrateur du serveur.

$SERVER_NAME 

73

.

$SERVER_PORT Numéro de port associé au protocole HTTP sur le

serveur.

$SERVER_PROTOCOLNom et version du protocole utilisé pour envoyer la

requête au script PHP.

$SERVER_SOFTWAREType (logiciel) du serveur Web.

 Affichage des variables d'environnement 

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 74/145

g

l est possible de créer un script permettant d'afficher

l'ensemble des variables d'environnement.

La première façon consiste à utiliser la fonction

paramètres du serveur et de l'interpréteur PHP, ainsiqu'un tableau des variables d'environnement.

<?php

phpinfo();?>

74

 Affichage des variables d'environnement 

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 75/145

PHP fournit aussi la fonction getenv() permettant de

retourner la valeur de la variable d'environnement

passée en paramètre.<?php

" " _ _

?>

Cette variable contient l'adresse IP du client appelant le

script.

<?php

echo getenv("$REMOTE_ADDR");?>

75

Les en-têtes HTTP

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 76/145

Lors de chaque échange par le protocole HTTP entre

votre navigateur et le serveur, des données dîtes d'en-

têtes contenant des informations sur les données àenvoyer (dans le cas d'une requête) ou envoyées (dans

'

question, généralement sur une page Web ou une

image, suivent ces en-têtes. Les en-têtes HTTP

permettent aussi d'effectuer des actions sur le

navigateur comme le transfert de cookies ou bien une

redirection vers une autre page.

76

Les en-têtes HTTP

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 77/145

Ces en-têtes sont les premières informations envoyées

au navigateur (pour une réponse) ou au serveur (dans

le cas d'une requête), elles se présentent sous la forme:

-

La syntaxe doit être rigoureusement respectée, c'est-à-

dire qu'aucun espace ne doit figurer entre le nom de

l'en-tête et les deux points (:). Un espace doit par

contre figurer après celui-ci !

77

Les en-têtes HTTP

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 78/145

PHP fournit une fonction permettant d'envoyer très

simplement des en-têtes HTTP manuellement du

serveur au navigateur (il s'agit alors d'une réponseHTTP).

header(chaîne en-tête HTTP)

Etant donnée que les en-têtes HTTP sont les premières

informations envoyées, la fonction header() doit être

utilisée avant tout envoi de données Html au

navigateur (le script qui la contient doit donc être placéavant la balise <html> et avant toute fonction

echo(),print ou printf()).

78

Les en-têtes HTTP

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 79/145

La fonction header() sera utilisée, par exemple, pour

rediriger le navigateur vers une nouvelle page :

<? h

header("location:

http://www.lehtml.com/php/index.php");

?>

79

Les en-têtes HTTP

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 80/145

Récupérer les en-têtes de la requête

Alors que la fonction header() permet d'envoyer des

en-têtes HTTP au navigateur, PHP fournit une seconde

fonction permettant de récupérer dans un tableaul'ensemble des en-têtes HTTP envoyées par le

Tableau getallheaders();Le tableau retourné par la fonction contient les en-

têtes indexés par leur nom. Voici un script permettant

par exemple de récupérer des en-têtes particuliers.

<?php $entetes = getallheaders;echo $entetes["location"];

?>

80

Les COOKIES

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 81/145

Les COOKIES c’est quoi ?Les COOKIES sont connus des webmasters et du

tout public, le parc des navigateurs en France autorise

à 99% les cookies. Pourquoi devrions nous se priver decet avantage ? Vous pouvez utiliser des cookies pour

.

Cela permet de le suivre, de le connecterautomatiquement, de faire des stats. Le cookie est un

fichier peu ordinaire mais fort utile !!

Un cookie est un fichier que le serveur envoi

sur la machine de l'utilisateur. Il est souvent utilisépour reconnaitre les utilisateurs. Vous pouvez en phpcréer et retrouver les valeurs du cookie.

81

Les COOKIES

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 82/145

Comment créer un cookie.

La fonction setcookie() est utilisé pour créer 1 cookie.IMPORTANT : La fonction setcookie() doit être placé

être vide pour que cette fonction marche

convenablement.

L'exemple ci-Aprés génère un cookie apelé

"nom_cookie", avec pour contenu "Léon" et pendantune période de 10 heures.

82

Les COOKIES

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 83/145

Comment créer un cookie.

<?php// génère le cookie

$contenu = 'léon' // le contenu de votre cookie

setcookie("nom_cookie", $contenu, time()+36000);

?>

<html>

<body>

<p>Un cookie a été généré sur cette page. </p></body>

</html>

83

Les COOKIES

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 84/145

Comment retrouver la valeur d'un cookie.

Quand 1 cookie est généré, php utilise le nom ducookie comme une variable

Pour y accéder, référer vous au nom de la variable

 Utiliser la fonction isset() pour voir si un cookie a été

généréExemple :

L'exemple ci-Après test l'existence d'un cookie appelé

"nom_cookie" et affiche si le cookie existe ou n'existepas.

84

Les COOKIES

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 85/145

<html>

<body>

<?php// test l'existance d'un cookie apelé "nom_cookie"

if (isset($_COOKIE["nom_cookie"]))

echo 'Le cookie existe ' . $_COOKIE["nom_cookie"] .

'!<br />';else

echo 'Le cookie n\'existe pas <br />';

?></body>

85

Les COOKIES

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 86/145

Comment afficher un cookie.

Un cookie peut contenir des variables, une chaine decaractère ou un tableau. Vous pouvez afficher

directement le contenu de votre cookie à l'aide des

variables d'environnements.

Syntaxe :<?php

echo $_COOKIE["nom"];

// ouecho $HTTP_COOKIE_VARS["nom"];

?>

86

Les COOKIES

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 87/145

Comment afficher tous les cookies.

Une méthode pour afficher tous les cookies en uneseule fois !!

 Syntaxe :

<?phpprint_r($_COOKIE);

?>

87

Dates et Heures en PHP

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 88/145

Bien que la fonction date() de PHP peut sembler avoir

une quantité incroyable d'options, ne vaut-il pas mieux

avoir trop de choix que pas assez? Avec la fonction date

de PHP vous formatez le timestamps, et il est ainsi plus

humainement lisible.

 Cet tuto vous apprendra comment afficher l'heure

actuelle, vous montrera tous les arguments de datepour référence et aussi le formatage du timestamps de

PHP (Le dico appelle cela un horodatage en français,

perso je préfère timestamps que je garderais tout aulong de ce tuto).

88

Dates et Heures en PHP

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 89/145

Date PHP - timestamps.

La fonction date formate toujours un timestamps, que

vous en fournissiez un ou non.

Qu'est-ce qu'un timestamps?

Bonne question!

Un timestamps est le nombre de secondes depuis le 1Janvier 1970 à 00:00.

Egalement connu sous le nom de timestamps Unix,cette mesure est un standard largement utilisé que PHP

a choisi d'utiliser.

89

Dates et Heures en PHP

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 90/145

Quelle Heures est-il ?

La fonction date utilise les lettres de l'alphabet pour

représenter les différentes parties d'une date typique

et le format de l'heure. Les lettres que nous utiliserons

dans notre premier exemple sont:

· d: Le jour du mois. Le genre de sortie auquelvous pouvez vous attendre est de 01 à 31.

· m: Le mois actuel, en tant que nombre. Vous

pouvez vous attendre à 01 à 12.· y: L'annee actuelle en deux chiffres ##. Vous

pouvez vous attendre à 00 à 99

90

Dates et Heures en PHP

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 91/145

Je vous parlerais des autres options plus tard, mais

maintenant utilisons les lettres ci-dessus pour formater

une date simple! Les lettres que PHP utilise pour

représenter les parties de la date et de l'heure seront

automatiquement converties par PHP.

 Cependant, les autres caractères comme une barre de

division "/" peuvent être insérés entre les lettres pourajouter un formatage additionnel.

Exemple:

<?php

echo date("m/d/y");

?>

91

Dates et Heures en PHP

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 92/145

Si la Coupe du monde de football 2020 était en train de

se finir, vous verriez quelque chose comme ceci :

Testez cela sur votre propre serveur PHP, c'est super de

voir les résultats instantanés disponibles avec la date

PHP!

92

Dates et Heures en PHP

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 93/145

Fournir un timestampsComme le montre notre premier exemple, le premier

argument de la fonction date dit à PHP de quelle façon

vous voulez que soient affichés la date et l'heure. Le

deuxième argument permet l'introduction d'un

timestamps et est optionnelle.

Cet exemple utilise la fonction mktime pour créer un

timestamps pour demain. Pour atteindre un jour dans

le futur nous ajoutons simplement un à l'argument jour

de mktime. Pour votre référence future, nous incluons

les arguments de mktime.

93

Dates et Heures en PHP

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 94/145

Note: Ces arguments sont tous optionnels. Si vous ne

fournissez aucun argument, l'heure actuelle sera

utilisée pour créer le timestamps.

· mktime(heure, minute, seconde, mois, jour, année,

heure d'hiver)

<?php$demain = mktime(0, 0, 0, date("m"), date("d")+1,

date("y"));

echo "Demain nous serons le ".date("m/d/y",

$demain);

?>

94

Dates et Heures en PHP

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 95/145

Références.Maintenant que vous avez appris les bases pour utiliser

la fonction date de PHP, vous pouvez facilement placer

n'importe laquelle des lettres suivantes pour formater

votre timestamps de manière à obtenir ce que vous

voulez.

Date et Heure complètes et importantes:· r: Affiche la date et l'heure complètes et la différence

de fuseau horaire. Cela revient au même que d'entrer

la date manuellement("D, d M Y H:i:s O")

95

Dates et Heures en PHP

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 96/145

Heure:· a: am ou pm selon l'heure

· A: AM ou PM selon l'heure

· g: Heure sans zéros de gauche. Valeurs sont de 1 à 12.

· G: Heure en format 24-heures sans zéros de gauche.

Valeurs sont 0 à 23.

· h: Heure avec zéros de gauche. Valeurs 01 à 12.· H: Heure en format 24-heure avec zéros de gauche.

Valeurs 00 à 23.

· i: Minute avec zéros de gauche. Valeurs 00 à 59.

· s: Secondes avec zéros de gauche. Valeurs 00 à 59.

96

Dates et Heures en PHP

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 97/145

Jour:

· d: Jour du mois avec zéros de gauche. Valeurs sont 01

à 31.

· j: Jour du mois sans zéros de gauche. Valeurs 1 à 31

· D: Abréviation du jour de la semaine. Sun à Sat

· l: Jour de la semaine. Valeurs Sunday à Saturday· w: Jour de la semaine sans zéros de gauche. Valeurs 0

à 6.

· z: Jour de l'année sans zéros de gauche. Valeurs 0 à

365.

97

Dates et Heures en PHP

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 98/145

Mois:

· m: Numéro du mois sans zéros de gauche. Valeurs 01

à 12

· n: Numéro du mois sans zéros de gauche. Valeurs 1 à

12

· M: Abréviation du mois. Valeurs Jan à Dec· F: Représentation normale du mois. Valeurs January à

December.

· t: Le nombre de jours du mois. Valeurs 28 à 31.

98

Dates et Heures en PHP

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 99/145

Année:

· L: 1 si c'est une année bissextile et 0 sinon.

· Y: Année en format quatre chiffres

· y: Année en format deux chiffres. Valeurs 00 à 99.

99

Dates et Heures en PHP

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 100/145

Autre Formatage:

· U: Le nombre de secondes depuis le Unix Epoch

(Janvier 1, 1970)

· O: Cela représente la différence de Fuseau Horaire,

qui est la différence avec l'heure de

Greenwich (GMT). 100 = 1 heure, -600 = -6 heuresJe vous suggère de prendre quelques minutes pour

créer plusieurs timestamps en utilisant la fonction PHPmktime et en essayant toutes ces différentes lettres

pour vous habituer à la fonction date de PHP.

100

La gestion des fichiers textes en php

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 101/145

La gestion des fichiers n’est pas particulièrement simple

en PHP mais facilement abordable pour un débutant.

D’un autre coté les fichiers textes sont une bonnealternative à la BDD. PHP possède toute une série de

, ,

modifier et supprimer un fichier texte. PHP propose

également des fonctions comme chmod() pour changer

le mode du fichier directement en ligne si votre serveur

l'autorise, et bien d'autre fonctions pour les accès aux

fichiers distants !!

101

La gestion des fichiers textes en php

Comment ouvrir un fichier ?

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 102/145

Comment ouvrir un fichier ?

La fonction fopen est utilisé pour ouvrir un fichier.

Le premier paramètre de la fonction est le nom dufichier et le second paramètre est le mode dans lequel

.

<html><body>

<?php

$f=fopen("exemple.txt","r");

?></body>

</html>102

La gestion des fichiers textes en php

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 103/145

Les différents modes d’ouverture.

Le fichier peut être ouvert dans un des modes suivants:

Modes et descriptions des différents modes :

 'r' Ouvre en lecture seule : Le pointeur est placé

au début du fichier.'r+' Ouvre en lecture/écriture : Le pointeur est

placé au début du fichier.

'w' Ouvre en écriture seule : Le pointeur est

placé au début du fichier. Réduit la taille du fichier à 0.

Tentative de création si celui ce n'existe pas.

103

La gestion des fichiers textes en php

diffé d d’

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 104/145

Les différents modes d’ouverture.

'w+' Ouvre en lecture/écriture : Le pointeur est

placé au début du fichier. Réduit la taille du fichier à 0.

Tentative de création si celui ce n'existe pas.

 'a' Ouvre en écriture seule : Le pointeur est

placé au début du fichier. Tentative de création si celuice n'existe pas.

a+' Ouvre en lecture/écriture : Le pointeur est

placé à la fin du fichier. Tentative de création si celui ce

n'existe pas.

104

La gestion des fichiers textes en php

L diffé d d’

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 105/145

Les différents modes d’ouverture.

'x' Crée et ouvre le fichier en lecture seule : Le

pointeur est placé au début du fichier. Si le fichier

existe déjà, fopen va échouer.

 'x+' Crée et ouvre le fichier en lecture/écriture :

Le pointeur est placé au début du fichier. Si le fichierexiste déjà, fopen va échouer.

Note

Si la fonction fopen() echoue lors de l'ouverture du

fichier, celle ci retourne 0

105

La gestion des fichiers textes en php

E l

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 106/145

Exemple :

L'exemple ci dessous génère un message si la fonction

fopen() est incapable d'ouvrir le fichier spécifié.

<html>

<body>

<?phpif (!($f=fopen("exemple.txt","r")))

exit("Unable to open file!");

?>

</body>

</html>

106

La gestion des fichiers textes en php

Fermer n fichier

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 107/145

Fermer un fichier.

La fonction fclose() est utilisé pour fermer un fichier.

Syntaxe :

<?phpfclose($f);

?>

107

La gestion des fichiers textes en php

Écrire dans un fichier.

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 108/145

Écrire dans un fichier.

L'écriture dans un fichier texte se fait avec la fonction

fwrite(). Pour faire des retour à la ligne vous devez

utiliser : "\r\n"

<?php

$f = 'exemple.txt';$text = "ma chaine de caractères";

$handle = fopen($f,"w");

// regarde si le fichier est accessible en écriture

if (is_writable($f)) {

// Ecriture

108

La gestion des fichiers textes en php

Écrire dans un fichier.

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 109/145

Écrire dans un fichier.

if (fwrite($handle, $text) === FALSE) {

echo 'Impossible d\'écrire dans le fichier '.$f.'';exit;

echo 'Ecriture terminé';fclose($handle);

else {

echo 'Impossible d\'écrire dans le fichier '.$f.'';

}?>

109

La gestion des fichiers textes en php

Compter le nombre de lignes.

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 110/145

A l'aide de 2 fonctions. L'une place le fichier dans un

tableau et l'autre pour compter les lignes du tableau.<?php

= ' '.

if(file_exists($f)) {

$tab = file($f); // place le fichier dans un tableau

$nb = count($tab); // compte le nombre de ligne

echo $nb; // Affiche le résultat

}?>

110

La gestion des fichiers textes en php

Trouver la fin d'un fichier

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 111/145

Trouver la fin d'un fichier.

La fonction feof() est utilisé pour déterminer si lepointeur est placé à la fin du fichier ou lister un fichier

us u'au dernier caractère. 

<?phpif (feof($f))

echo 'Fin du fichier';

?>

111

La gestion des fichiers textes en php

Récupérer le contenu

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 112/145

Récupérer le contenu.

Nous allons nous servir de la fonction file_get_contentspour récupérer l'integralité du fichier ou utiliser fopen

avec fread. Et tout ceci n'a rien de com li ué! 

<?php

$contents = file_get_contents("url du fichier");// Ou Avec fopen, fread

$fd = fopen($texte, 'r');

// Ouverture du fichier en lecture seule//Récupère le contenu du fichier

112

La gestion des fichiers textes en php

Récupérer le contenu.

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 113/145

Récupérer le contenu.

// et le place dans une chaine de caractères ($contents)$contents = fread($fd, filesize($filename));

fclose $fd Fermeture du fichier

?>

Et voilà!! Vous voyez que c'est très simple de récupérer

un contenu de fichier. Dans les 2 possibilités donnée ci

dessus le résultat se trouve dans la chaine de caractère"$contents".

113

La gestion des fichiers textes en php

Comment lire caractère par caractère ?

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 114/145

La fonction fgetc() est utilisé pour lire les caractères

dans un fichierExemple :

<

if (!($f=fopen("exemple.txt","r")))

exit("Impossible d'ouvrir le fichier.");while (!feof($f))

{ $texte=fgetc($f);

echo $texte; }fclose($f);

?>

114

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 115/145

115

PHP 5

Comme PHP est un langage de programmation orienté

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 116/145

web et comme il est facile a utilisé il est devenue de

plus en plus présent dans les site web dynamique.

Et dans sa 5 Emme version il est devenue orienté objet

dans ces notions.

116

Déclarer une classe en PHP

• Une classe est un modèle de données

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 117/145

 –  famille d'objets, ou encore moule à objets

 –  tous les objets d’une même classe partagent les

mêmes attributs et les mêmes méthodes• le mot clé class permet de déclarer une classe

' .

class voiture{

//code de la classe

}

117

Déclarer des attributs

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 118/145

class Personne

{

public $nom = "Med";

• public, protected, private sont supportés• L’un des trois est obligatoire ou le mot clé var (

public)

• Affectation et même déclaration facultatives!!

118

Déclarer Les constructeurs

PHP 5 permet aux développeurs de déclarer des

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 119/145

p pp

constructeurs pour les classes. Les classes qui

possèdent une méthode constructeur appellent cette

méthode à chaque création d'une nouvelle instance

de l'objet, ce qui est intéressant pour toutes les

initialisations dont l'objet a besoin avant d'être utilisé.

Note :Les constructeurs parents ne sont pas appelés

implicitement si la classe enfant définie un

constructeur. Si vous voulez utiliser un constructeur

parent, il sera nécessaire de faire appel à

parent::__construct() .

119

Déclarer Les constructeurs

Exemple d'utilisation des nouveaux constructeurs unifiés:

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 120/145

class BaseClass {

function __construct() {

print "In BaseClass constructor\n";

}}

class SubClass extends BaseClass {

function __construct() {parent::__construct();

print "In SubClass constructor\n";

}}

$obj = new BaseClass(); $obj = new SubClass();

120

Déclarer Les constructeurs

Po d s iso s d o tibilité s d t si

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 121/145

Pour des raisons de compatibilité ascendante, si

PHP 5 ne peut pas trouver une fonction __construct()

pour une classe donnée, il cherchera une fonctionconstructeur représentée, comme dans l'ancien style

< , par e nom e a c asse. ec vemen , ce a

signifie que le seul cas où il pourrait y avoir unproblème de compatibilité est celui où votre classe

contiendrait une méthode nommée __construct() et

que vous en ayez un autre usage.

121

Déclarer Les destructeurs

void  __destruct ( )

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 122/145

PHP 5 introduit un concept de destructeur similaire aux

autres langages orientés objet, comme le C++ . La

méthode destructeur doit être appelée aussitôt que

toutes les références à un objet particulier sont effacées

ou lorsque l'objet est explicitement détruit.

Tout comme le constructeur, le destructeur parent n'est

pas appelé implicitement par le moteur. Pour exécuter le

destructeur parent, vous devez appeler explicitement la

fonction parent::__destruct dans le corps du destructeur.

.

122

Déclarer Les destructeurs

class MyDestructableClass {

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 123/145

function __construct() {

print "In constructor\n";

$this->name = "MyDestructableClass« ; }

function __destruct() {

print "Destruction de " . $this->name . "\n";

}}$obj = new MyDestructableClass();

Notes: Le destructeur est appelé durant l'arrêt du script,

donc les en-têtes sont toujours déjà envoyés.

Tenter de lancer une exception depuis un destructeur

résulte en une erreur fatale.

123

Déclarer des méthodes

class voiture

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 124/145

class voiture

{

fonction freiner($force_de_freinage){

 //code qui freine

}}

• public, protected, private sont supportés

• Implicitement « public »

124

Déclarer Les constantes

class voiture

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 125/145

class voiture{

const ROUES_MOTRICES = 2;}

 

convention classique : spécifier les constantes enmajuscules dans le code pour mieux lesidentifier

125

Instanciation

class voiture

{

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 126/145

{

const ROUES_MOTRICES = 2;

public $marque;function freiner($force_de_freinage)

//code qui freine

}}$MaVoiture = new voiture();

• Les parenthèses sont optionnelles si le constructeurne nécessite pas de paramètre

• En PHP5 toute classe doit être déclarée avant d'êtreutilisée

126

 Accéder à un attribut 

l it

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 127/145

class voiture

{

public $marque = "trabant";

}

 $MaVoiture = new voiture();

echo $MaVoiture->marque;// affiche trabant

127

 Accéder à une méthode

class voiture

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 128/145

{

function klaxonner(){

" " 

}

}$MaVoiture = new voiture();

echo $MaVoiture->klaxonner();

// affiche "tut tut!"

128

 Accès aux méthodes statiques

Attention :• appel direct via la classe, pas d’instanciaton

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 129/145

• utilisant de l’accesseur ::

• La référence à l’objet courant $this est alors interdite

class voiture

 

129

public $roues = 4;function statique(){

return 4;}function dynamique()

{return $this->roues;

}}

ec o vo ure:: roues;// affiche un message d’erreur

echo voiture::statique();

// affiche 4

echo voiture::dynamique();

// affiche un message d'erreur

 Accès aux méthodes statiques

Attention :

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 130/145

• Via le mot clé static•

Pour les attributs public private ou protected devientfacultatif (public par défaut)

class voiture{

static $roues = 4static function statique(){echo 4;

}}

130

 Accès aux méthodes statiques

echo voiture::$roues;

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 131/145

// affiche 4

echo voiture::static();// affiche 4

=echo $v->roues;

// affiche un message d'erreurecho $v->statique();//affiche 4 et est sensé afficher un message d'erreur

de niveau E_STRICT

131

Exception

<?php

function inverse($x) {

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 132/145

function inverse($x) {

if (!$x) {

throw new Exception('Division by zero.');}

 else return 1/$x;

}try {

echo inverse(5) . "\n";

echo inverse(0) . "\n";

} catch (Exception $e) {echo 'Caught exception: ', $e->getMessage(), "\n« ;}

132

Héritage en PHP5

class vehicule{

bli $ ""

class voiture extendsvehicule{

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 133/145

public $marque = "";

function avance(){code ui fait avancer

{function klaxonne()

{//code qui fait

133

 le véhicule

}function freine(){//code qui fait freiner le

vehicule}}

axonner a vo ure}}

la classe voiturepossède un attributmarque, une méthodefreine et une méthode

avance par héritage

Héritage en PHP5

• Les méthodes hérités peuvent être réécrites dans laclasse fille :

class voiture extends vehicule

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 134/145

class voiture extends vehicule

{

public $marque= « peugeot »;

function klaxonne

134

{ //code qui fait klaxonner la voiture}

function avance(){ //code qui fait avancer la voiture }

function freine()

{ //code qui fait freiner la voiture}

}

Héritage en PHP5

Accéder à la classe parente :class vehicule

{ $ 4

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 135/145

{ $roues = 4;

function affiche(){ return "a ".$this->roues." roues« ; }

135

class voiture extends vehicule

{ function affiche(){ echo "cette voiture ".parent::affiche();}

}

$v = new voiture();

$v->affiche();

//affiche cette voiture a 4 roues

Contrôle d’accès

• public: une méthode ou attribut publique est

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 136/145

public: une méthode ou attribut publique estaccessible depuis toute votre application

• private: une méthode ou attribut privée n’est

136

access e que epu s nt r eur e a c asse

• Protected: une méthode ou attribut publique estaccessible depuis l’intérieur de la classe, et depuistoutes les classes dérivés

Classe abstraite

• début d'implémentation d'une classe• Non instanciable

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 137/145

Non instanciable• Toute classe contenant au moins une méthode

abstraite doit être déclarée abstraite• Seule la signature d’une méthode abstraite est

137

 • Les classes dérivées doivent implémentées toutes

les méthodes abstraites• Les classes dérivées ne sont pas obligées

d’implémenter les méthodes déjà implémenterdans la classe parent, et peuvent posséder leurspropres méthodes

Classe abstraite

abstract class vehicule

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 138/145

{

abstract function avancer();function tourner($sens)

138

echo "tourne à ".$sens."<br />";

}}

Classe abstraite

Héritage d’une classe abstraite

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 139/145

class voiture extends vehicule

{

139

unc on avancer{ echo "go!<br />";

}

function klaxonner(){ echo "tut tut!<br />";

}}

Clonage en PHP5

• c'est le mot-clé clone qui permet d'effectuer unecopie distinct d’un objet

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 140/145

class voiture{

public $marque = "trabant";

140

$MaVoiture = new voiture();$MaVoiture2 = clone $MaVoiture;$MaVoiture2->marque = 'ferrari';echo $MaVoiture->marque;

// affiche "trabant"

 Appartenance d’un objet à une classe

class voiture{}$MaVoiture = new voiture();if($MaVoit re instanceof oit re)

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 141/145

if($MaVoiture instanceof voiture)

{ echo "cet objet est une voiture";}

141

Else{

echo "cet objet n'est pas une voiture";}

Obtenir la classe d’un objet 

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 142/145

class voiture{}

$MaVoiture = new voiture();echo "cet objet est une " . get_class($MaVoiture);

142

// affiche "cet objet est une voiture"

Obtenir la classe parente d’un objet 

class vehicule{}

class voiture extends vehicule{}

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 143/145

class voiture extends vehicule{}

$MaVoiture = new voiture();echo get_class_parent($MaVoiture);

143

a c e ve cu e

echo get_class_parent('voiture');

// affiche "vehicule"

Mohamed TRABELSI

 A propos :

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 144/145

Etudiant 3 Emme année enlicence appliqué technologie

144

 

 A propos :

Stage d’ouvrier effectuer a

5/14/2018 Php Med Trabelsi - slidepdf.com

http://slidepdf.com/reader/full/php-med-trabelsi 145/145

145

De 1er au 31 juillet 2010