Php Med Trabelsi
-
Upload
mohamed-trabelsi -
Category
Documents
-
view
92 -
download
0
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