Chapitre II : PHP - Notions de base
I. La petite histoire du PHP
Il a t cr en 1994 par Rasmus Lerdorf pour les besoins des pages web personnelles (livre
dor, compteurs, etc.). A l poque, PHP signifiait Personal Home Page.
Cest un langage incrust au HTML et interpr t (PHP3) ou compil (PHP4) c t serveur. Il
d rive du C et du Perl dont il reprend la syntaxe. Il est extensible gr ce de nombreux
modules et son code source est ouvert. Comme il supporte tous les standards du web et quil
est gratuit, il sest rapidement r pandu sur la toile.
En 1997, PHP devient un projet collectif et son interpr teur est r crit par Zeev Suraski et
Andi Gutmans pour donner la version 3 qui sappelle d sormais PHP : Hypertext
Preprocessor.
En 2002, PHP est utilis par plus de 8 millions de sites Web travers le monde et en 2007 par
plus de 20 millions.
La version actuelle est la version 5, sortie le 13 juillet 2004. La derni re mise jour est la
5.6.14 datant du 1 octobre 2015. La prochaine version : PHP 6 est en d veloppement.
Il existe par ailleurs des applications web pr tes lemploi (PHPNuke, PHP SPIP,
PHPSlash&) permettant de monter facilement et gratuitement son portail. En juillet 2000 plus
de 300.000 sites tournaient d j sous PHP !
II. Mod le
III. Int gration dun script dans une page
Les pages web sont au format html. Les pages web dynamiques g n r es avec PHP sont au
format php. Le code source php est directement ins r dans le fichier html gr ce au conteneur
de la norme XML : <?php & ?>
Exemple:
1 Enseignants : Ouali Mohamed et Hedhli Houssem ISET de Bizerte
Classes : DSI2 Mati re : Pgt c t serveur
Chapitre II : PHP - Notions de base
R sultat affich par le navigateur
<html>
<body>
<?php
echo "Bonjour";
?>
</body>
</html>
Exemple de script
<html>
<body>
</body>
</html>
IV. Commentaires
Un script php se commente comme en C :
Exemple :
<?php
// commentaire de fin de ligne
/* commentaire
sur plusieurs
lignes */
commentaire de fin de ligne comme en Shell
?>
Tout ce qui se trouve dans un commentaire est ignor . Il est conseill de commenter
largement ses scripts.
V. Variables, types et op rateurs
Le typage des variables est implicite en php. Il nest donc pas n cessaire de d clarer leur type
au pr alable ni m me de les initialiser avant leur utilisation.
Les identificateurs de variable sont pr c d s du symbole $ (dollars).
2 Enseignants : Ouali Mohamed et Hedhli Houssem ISET de Bizerte
Classes : DSI2 Mati re : Pgt c t serveur
Chapitre II : PHP - Notions de base
Advertisement
Exemple : $toto.
Les variables peuvent tre de type entier (integer), r el (double), cha ne de caract res
(string), tableau (array), objet (object), bool en (boolean).
Il est possible de convertir une variable en un type primitif gr ce au cast1 (comme en C).
Exemple :
$str = "12";
// $str vaut la cha ne "12"
$nbr = (int)$str;
// $nbr vaut le nombre 12
Quelques fonctions :
empty($var) : renvoie vrai si la variable est vide
isset($var) : renvoie vrai si la variable existe
unset($var) : d truit une variable
gettype($var) : retourne le type de la variable
settype($var, "type") : convertit la variable en type type (cast)
is_long(), is_double(), is_string(), is_array(), is_object(), is_bool(), is_float(),
is_numeric(), is_integer(), is_int()&
Une variable peut avoir pour identificateur la valeur dune autre variable.
Syntaxe : ${$var} = valeur;
Exemple :
$toto = "Hello";
${$toto} = 2012;
echo $Hello;
// la variable $Hello vaut 2012
La port e dune variable est limit e au bloc dans lequel elle a t cr e. Une variable locale
une fonction nest pas connue dans le reste du programme. Tout comme une variable du
programme nest pas connue dans une fonction. Une variable cr e dans un bloc nest pas
connue dans les autres blocs, m mes sup rieurs.
Op rateurs arithm tiques :
+ (addition), - (soustraction), * (multipli ), / (divis ), % (modulo), ++ (incr ment),
-- (d cr ment). Ces deux derniers peuvent tre pr ou post fix s
Op rateurs dassignement :
= (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)
1 Le cast est une conversion de type. Laction de caster consiste en convertir une variable dun
type un autre.
3 Enseignants : Ouali Mohamed et Hedhli Houssem ISET de Bizerte
Classes : DSI2 Mati re : Pgt c t serveur
Chapitre II : PHP - Notions de base
Signalons un op rateur tr s sp cial qui quivaut une structure conditionnelle complexe if
then else la diff rence quil renvoie un r sultat de valeur pouvant ne pas tre un bool en :
lop rateur ternaire.
Syntaxe :
(condition)?(expression1):(expression2);
Si la condition est vrai alors value et renvoie lexpression1 sinon value et renvoie
lexpression2.
Exemple :
$nbr = ($toto>10)?($toto):($toto%10);
Dans cet exemple, la variable $nbr prend $toto pour valeur si $toto est strictement sup rieur
10, sinon vaut le reste de la division enti re de $toto par 10.
VI. Constantes
Lutilisateur peut d finir des constantes dont la valeur est fix e une fois pour toute. Les
constantes ne portent pas le symbole $ (dollars) en d but didentificateur et ne sont pas
modifiables.
define("var",valeur) : d finit la constante var (sans $) de valeur valeur
Exemple 1 :
Advertisement
define("Auteur","Michel");
echo Auteur;
// affiche Michel
Exemple 2 :
define(MY_YEAR,1980);
echo MY_YEAR;
// affiche 1980
Contrairement aux variables, les identificateurs de constantes (et aussi ceux de fonction) ne
sont pas sensibles la casse.
VII. R f rences
On peut la mani re des pointeurs en C faire r f rence une variable gr ce lop rateur &
(ET commercial).
Exemple 1 :
$toto = 100;
// la variable $toto est initialis e la valeur 100
$test = &$toto; // la variable $test fait r f rence $toto
$toto++;
// on change la valeur de $toto
echo $test;
// qui est r percut e sur $test qui vaut alors 101
Exemple 2 :
4 Enseignants : Ouali Mohamed et Hedhli Houssem ISET de Bizerte
Classes : DSI2 Mati re : Pgt c t serveur
Chapitre II : PHP - Notions de base
function change($var) {
$var++;
// la fonction incr mente en local largument
}
$nbr = 1;
// la variable $nbr est initialis e 1
change(&$nbr);
// passage de la variable par r f rence
echo $nbr;
// sa valeur a donc t modifi e
VIII. Math matiques
Il existe une miriade de fonctions math matiques.
abs($x) : valeur absolue
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
max($a, $b, $c &) : retourne largument de valeur maximum
pi() : retourne la valeur de Pi
Et aussi : cos, sin, tan, exp, log, min, pi, sqrt&
Quelques constantes :
M_PI : valeur de pi (3.14159265358979323846)
M_E : valeur de e (2.7182818284590452354)
Nombres al atoires :
rand([$x[,$y]) : valeur enti re al atoire entre 0 et RAND_MAX si x et y ne sont pas
d finis, entre x et RAND_MAX si seul x est d fini, entre x et y si ces deux param tres
sont d finis.
srand() : initialisation du g n rateur al atoire
getrandmax() : retourne la valeur du plus grand entier pouvant tre g n r
L'algorithme utilis par la fonction rand() - issu de vieilles biblioth ques libcs - est
particuli rement lent et poss de un comportement pouvant se r v ler pr visible. La fonction
mt_rand() quivalente rand() est plus rapide et plus s re puisque l'algorithme utilis se
base sur la cryptographie.
En cas dutilisation de la fonction mt_rand(), ne pas oublier dutiliser les fonctions de la
m me famille : mt_rand([$x[,$y]]), mt_srand() et mt_getrandmax().
Advertisement
Formatage dun nombre :
number_format ($nbr[,$dec,[$a,$b]]) : retourne une cha ne de caract res repr sentant le
nombre $nbr avec $dec d cimales apr s formatage. La cha ne $a repr sente le symbole
faisant office de virgule et $b le s parateur de milliers.
5 Enseignants : Ouali Mohamed et Hedhli Houssem ISET de Bizerte
Classes : DSI2 Mati re : Pgt c t serveur
Chapitre II : PHP - Notions de base
Par d faut, le formatage est anglophone : $a = ''. '' et $b = '', ''.
Tr s utile pour repr senter les nombres lev s au format francophone.
Exemples :
number_format (1000000.3333);
// affiche 1,000,000
number_format (1000000.3333,2);
// affiche 1,000,000.33
number_format (1000000.3333,2,",",".");
// affiche 1.000.000,33
IX. Expressions
Presque tout en php est une expression. On les construit de fa on tr s souple. De fa on
r duire la taille du code (comme en C). Linconv nient est lillisibilit du code ainsi crit sauf
le commenter suffisamment. Il faut donc les construire avec parcimonie et ne pas h siter
les fractionner.
Exemple :
echo change( $nbr += ($toto>0)?(0):(--$toto) );
Attention utiliser les parenth ses afin de pallier aux priorit s des op rateurs.
X. Bool ens
Les variables bool ennes prennent pour valeurs TRUE (vrai) et FALSE (faux). Une valeur
enti re nulle est automatiquement consid r e comme FALSE. Tout comme une cha ne de
caract res vide "". Ou encore comme les cha nes "0" et 0 cast es en lentier 0 lui m me
cast en FALSE.
Exemple :
if(0) echo 1;
// faux
if('''') echo 2;
if(''0'') echo 3;
if(''00'') echo 4;
// faux
// faux
if('0') echo 5; // faux
if('00') echo 6;
if('' '') echo 7;
Cet exemple affiche 467. Donc lespace ou la cha ne 00 ne sont pas consid r s cast s en
FALSE.
XI. Cha nes de caract res
Une variable cha ne de caract res nest pas limit e en nombre de caract res. Elle est toujours
d limit e par des simples quotes ou des doubles quotes.
Exemples :
6 Enseignants : Ouali Mohamed et Hedhli Houssem ISET de Bizerte
Classes : DSI2 Mati re : Pgt c t serveur
Chapitre II : PHP - Notions de base
$nom = ''Hugo'';
$prenom = Victor;
Les doubles quottes permettent l valuation des variables et caract res sp ciaux contenus dans
la cha ne (comme en C ou en Shell) alors que les simples ne le permettent pas.
Exemples :
echo ''Nom: $nom''; // affiche Nom: Hugo
echo Nom: $nom; // affiche Nom: $nom
Quelques caract res sp ciaux : \n (nouvelle ligne), \r (retour la ligne), \t (tabulation
horizontale), \\ (antislash), \$ (caract re dollars), \ (double quote).
Exemple : echo ''Hello Word !\n'';
Advertisement
Op rateur de concat nation de cha nes : . (point)
Exemple 1 :
$foo = ''Hello'';
$bar = ''Word'';
echo $foo.$bar;
Exemple 2 :
$name = ''Henry'';
$whoiam = $name. ''IV'';
Exemple 3 :
$out = Patati;
$out .= '' et patata&'';
Affichage dune cha ne avec echo:
Exemples:
echo Hello Word.;
echo ''Hello ${name}\n'';
echo ''Nom : '', $name;
echo(''Bonjour'');
Quelques fonctions:
strlen($str) : retourne le nombre de caract res dune cha ne
strtolower($str) : conversion en minuscules
strtoupper($str) : conversion en majuscules
trim($str) : suppression des espaces de d but et de fin de cha ne
7 Enseignants : Ouali Mohamed et Hedhli Houssem ISET de Bizerte
Classes : DSI2 Mati re : Pgt c t serveur
Chapitre II : PHP - Notions de base
substr($str,$i,$j) : retourne une sous cha ne de $str de taille $j et d butant la
position $i
strnatcmp($str1,$str2) : comparaison de 2 cha nes
addslashes($str) : d sp cialise les caract res sp ciaux (, , \)
ord($char) : retourne la valeur ASCII du caract re $char
On peut d limiter les cha nes de caract res avec la syntaxe Here-doc.
Exemple :
$essai = <<<EOD
Ma cha ne ''essai''
sur plusieurs lignes.
EOD;
echo $essai;
La valeur de la variable $essai est d limit e par un identifiant que vous nommez librement.
La premi re apparition de cet identifiant doit tre pr c d e de 3 signes inf rieurs <. Sa
deuxi me apparition doit se faire en premier sur une nouvelle ligne. Cette valeur cha ne se
comporte comme si elle tait d limit e par des doubles quotes dans le sens o les
variables seront valu es. Par contre il est inutile d chapper les guillemets, cest- -dire que la
d sp cialisation des doubles quotes devient inutile.
XII. Affichage
Les fonctions daffichage :
echo() : criture dans le navigateur
print() : criture dans le navigateur
printf([$format, $arg1, $arg2]) : criture format e comme en C, i.e. la cha ne de
caract re est constante et contient le format daffichage des variables pass es en
argument
Exemples :
echo ''Bonjour $name'';
print(''Bonjour $name'');
printf(''Bonjour %s'', $name);
8 Enseignants : Ouali Mohamed et Hedhli Houssem ISET de Bizerte
Classes : DSI2 Mati re : Pgt c t serveur