3. 1 LE PRINCIPE DE PHP
1 Le principe de PHP
1.1 Langage cˆot´e serveur
PHP est un langage dit cˆot´e serveur. Cel`a signifie que c’est le serveur web `a qui vous
demandez la page qui va ex´ecuter vos programmes PHP, et non la machine avec laquelle vous
surfez. Cel`a est tr`es important, car PHP n’a plus aucun effet une fois la page charg´ee. De
plus, les visiteurs ne peuvent pas visualiser le contenu de vos fichiers PHP, puisque le code s’y
trouvant est ex´ecut´e et en aucun cas affich´e.
1.2 Pour travailler
Pour pouvoir utiliser PHP, il vous faut donc un serveur web. Un simple navigateur ne suffit
pas. Pour cette formation, utilisez l’h´ebergement fourni par INP-Net. Mettez vos documents
dans votre r´epertoire www public et acc´eder-y via le chemin
http ://bde.enseeiht.fr/~votrelogin/votrefichier.php
1.3 Langage de pr´e-processing
Les navigateurs web ne savent interpr´eter que du XHTML. Par cons´equent, lorsque PHP est
ex´ecut´e, il produit du code XHTML. En fait, vous pouvez m´elanger le PHP et le code HTML. Le
code PHP sera ex´ecut´e et remplac´e par le code HTML qu’il renvoie. Voici un premier programme
en PHP pour vous en convaincre.
<?php
echo( ”<?xml version =”1.0”
encoding=”iso −8859−15”?>” ) ;
?>
<!DOCTYPE html PUBLIC ”−//W3C//DTD XHTML 1.0 S t r i c t //EN”
” http ://www. w3 . org /TR/xhtml1/DTD/xhtml1−s t r i c t . dtd”>
<html xmlns=” http ://www. w3 . org /1999/ xhtml” xml : lang=” f r ”>
<head>
<t i t l e >Page vide pour tester </t i t l e >
<style >
@import url ( ’ css / s t y l e . css ’ ) ;
</style >
</head>
<body>
<?php
echo( ”Bonjour tout l e monde ! ” ) ;
?>
</body>
</html>
Un premier programme en PHP
3
4. 2 LES BASES DU LANGAGE
Vous voyez que PHP s’ins`ere avec des marqueurs de d´ebut et de fin. Le marqueur d’ouverture
peut n’ˆetre que <?. C’est pour quoi nous avons du dire `a PHP d’´ecrire la premi`ere ligne du
code source HTML, car il ne s’agit pas de code PHP, et il tente de l’interpr´eter comme tel.
Nous vous d´econseillons fortement d’utiliser le marqueur d’ouverture <?. Utilisez toujours le
marqueur <?php.
2 Les bases du langage
PHP est un langage de programmation, qui est `a l’origine un langage de script. Cel`a signifie
qu’il n’est pas compil´e mais interpr´et´e. Cel`a implique, mˆeme si la th´eorie ne le dit pas, que
l’´ecriture de son code est facilit´e par nombre de conversions automatiques qu’il effectue. Nous
allons voir comment utiliser les commandes PHP de base. Un fichier d’exmple est montr´e `a la
fin.
2.1 La syntaxe
La syntaxe de PHP ressemble beaucoup `a celle de C, en plus simple. Vous ne serez pas
d´epays´es si vous savez coder en C. Une commande doit toujours se terminer par un point-
virgule, comme en C.
2.1.1 Les variables
Les noms de variables commencent toujours par un $, suivi de lettres de l’alphabet, de
chiffres, ou d’underscores. Attention cependant : le premier caract`ere apr`es le $ doit toujours
ˆetre une lettre ou un underscore, jamais un chiffre. Les noms de variables sont sensibles `a la
casse. Les variables sont typ´ees, mais vous n’avez pas besoin de d´eclarer leur type et pouvez
le changer en cours de route, sans pr´evenir PHP. Il effectuera toutes les conversions qu’il peut
tout seul. L’avantage est qu’on code beaucoup plus vite. L’inconv´enient est qu’on fait beaucoup
plus d’erreurs.
2.1.2 L’affectation
La syntaxe de l’affection est la mˆeme qu’en C, `a savoir le nom de la variable, suivi du signe
´egal, suivi de la valeur `a affecter.
<?php
# Variable de type integer
$a=1;
# Type f l o a t
$b =1.5;
#Type String
$c=” Salut l e s gens ” ;
#Type boolean
$d=true ;
4
5. 2 LES BASES DU LANGAGE
#conversion auto : php r ˜A c attribue l e type s ’ i l l e faut
$a=$c ;
?>
Les variables en PHP
2.1.3 Les tableaux
Les tableaux en PHP sont tr`es simples `a utiliser. Ils sont dynamiques et vous pouvez rajouter
des ´el´ements quand vous voulez. Il sont aussi associatifs, ce qui est tr`es pratique. Voyez plutˆot.
<?php
$tab1=array () ;
$tab1 [0]= ”Roger” ;
$tab1 [1]= ”Marcel” ;
$tab []= ”Robert” ;
$tab2 [ ”papa”]=”Roger” ;
$tab2 [ ”maman”]=” Marcelle ” ;
$tab2 [ ” f i l s ”]=”Robert” ;
$a=$tab [ 1 ] ;
$b=$tab2 [ ”maman” ] ;
?>
Les tableaux en PHP
2.1.4 Les op´erations
Les op´erations math´ematiques standards sont utilisables.
<?php
$a = 1;
$b = 2;
$c = 5;
5
6. 2 LES BASES DU LANGAGE
$d = $a + 1 ;
$d = $b − $a ;
$d = $c ∗ $b ;
$e = 5 / $a ;
$f = ( 5 ∗ $a ) − ( $b ∗ $c + 2 ) ;
$a+ = 2;
$b− = 5;
$d++;
++$c ;
?>
Op´erations standards
2.1.5 La concat´enation de chaˆıne
Le symbole de concat´enation de chaˆıne de base est le point. Mais PHP poss`ede une autre
m´ethode de concat´enation tr`es pratique. Exemple dans ce code :
<?php
$nombre=2;
$ami=”Roger” ;
$ami2=”Norbert” ;
# $moi contient ”J ’ ai 2 amis . Ce sont Roger et Norbert”
$moi=”J ’ ai ” . $nombre . ” amis . Ce sont ” . $ami . ” et
” . $ami2 . ” . ” ;
# $moi contient ”J ’ ai 2 amis . Ce sont Roger et Norbert”
$moi=”J ’ ai $nombre amis . Ce sont $ami et $ami2 . ” ;
# $moi contient ”J ’ ai $nombre amis . Ce sont $ami et $ami2 .”
$moi=’J ’ ai $nombre amis . Ce sont $ami et $ami2 . ’ ;
$moi.=” J ’ aime mes amis” ;
# $moi contient ”J ’ ai $nombre amis . Ce sont $ami et $ami2 .
J ’ aime mes amis .”
?>
6
7. 2 LES BASES DU LANGAGE
Concat´ener des chaˆınes
2.2 Les fonctions
PHP fournit un tr`es grand nombre de fonctions pr´ed´efinies, et vous pouvez en d´efinir vous
mˆeme.
2.2.1 La fonction echo
C’est la fonction la plus importante de php. C’est elle qui va renvoyer du code HTML de
sortie. C’est elle qui va afficher tout ce que l’utilisateur verra. Vous l’avez d´ej`a rencontr´ee dans
le premier exemple.
2.2.2 La fonction include
C’est la deuxi`eme fonction la plus importante de PHP. Elle vous permet d’inclure du code
HTML ou PHP pr´esent dans un autre fichier. Le code HTML du fichier appel´e est affich´e comme
avec echo, et le code PHP est ex´ecut´e.
2.2.3 Quelques fonctions utiles
<?php
count( $tableau ) ; #renvoie l e nombre d ’ ˜A c l˜A c ments contenus
dans tableau
strlen ( $chaine ) ; #Renvoie l e nomrbre de caract ˜A¨re de la
chaine
explode ( ” , ” , $chaine ) ; #Transforme une chaine en tableau en
la coupant selon l e caract ˜A¨re s ˜A c pcifi ˜A c
implode( ” , ” , $tableau ) ; #Op ˜A c ration inverse : l e tableau est
tranform ˜A c en chaine .
trim( $chaine ) ; # Renvoie la chaine priv ˜A c e des eespaces
blancs de d ˜A c but et de f i n .
print r ( $tableau ) ; # Affiche tout l e contenu d ’un tableau ,
pratique pour d ˜A c buguer
?>
;
7
8. 3 COMMUNIQUER AVEC PHP
2.2.4 Fonctions personnelles
Vous pouvez d´efinir vous-mˆeme des fonctions. Regardez l’exemple suivant.
<?php
function c a l c u l ( $a , $b ) {
$ r e s u l t a t=$a+b ;
echo( ”J ’ ai calcul ˜A c ! ” ) ;
return $ r e s u l t a t ;
}
function calc ul2 ( $a , $b=1){
return $a+$b ;
}
echo( ”PHP a calcul ˜A c ” . c a l c u l (4 ,7) ) ;
echo( ”<br /> et aussi ” . c alc ul2 (2) . ” et ” . calc ul2 (2 ,2) ) ;
?>
Fonctions d´efinies par l’utilisateur
3 Communiquer avec php
3.1 Introduction
Le plus grand int´erˆet de PHP est d’interagir avec l’utilisateur. Pour ce faire, PHP sait
r´ecup´erer des variables particuli`eres. Nous allons ´etudier comment les utiliser.
3.2 Compl´ement de XHTML
Le premier int´erˆet de PHP est de pouvoir communiquer avec l’utilisateur. Pour ce faire, les
langages Web (il n’y a pas que PHP) r´ecup`erent des donn´ees envoy´ees par les utilisateurs. Ces
donn´ees sont soumises via ce qu’on apelle des formulaires. Le XHTML permet la r´edaction de
formulaires. Voyez ce code.
<?xml version=” 1.0 ” encoding=” iso −8859−15”?>
<!DOCTYPE html PUBLIC ”−//W3C//DTD XHTML 1.0 S t r i c t //EN”
” http ://www. w3 . org /TR/xhtml1/DTD/xhtml1−s t r i c t . dtd”>
<html xmlns=” http ://www. w3 . org /1999/ xhtml” xml : lang=” f r ”>
<head>
<t i t l e >Page vide pour tester </t i t l e >
8
9. 3 COMMUNIQUER AVEC PHP
<style >
@import url ( ’ css / s t y l e . css ’ ) ;
</style >
</head>
<body>
<form name=”monFormulaire” action=” connexion . php”
method=” post ”>
<div>
<p>Login : <input type=” text ” name=”nom”
/><p>
<p>Mot de passe : <input type=”password”
name=”motdepasse” /></p>
<p>Acceptez vous nos conditions ? <input
type=”checkbox” name=” conditions ” /><p>
<p><input type=”submit” value=”Envoyer”
/></p>
</div>
</form>
</body>
</html>
Un formulaire en XHTML
3.3 R´ecup´erer les donnes POST
Nous allons maintenant pouvoir, apr`es soumission du formulaire, r´ecup´erer des donn´ees
entr´ees par l’utilisateur. Voyez le fichier calculette.php.
<!DOCTYPE html PUBLIC ”−//W3C//DTD XHTML 1.0 S t r i c t //EN”
” http ://www. w3 . org /TR/xhtml1/DTD/xhtml1−s t r i c t . dtd”>
<html xmlns=” http ://www. w3 . org /1999/ xhtml” xml : lang=” f r ”>
<head>
<t i t l e >Page vide pour tester </t i t l e >
<style >
@import url ( ’ css / s t y l e . css ’ ) ;
</style >
</head>
<body>
<?php
$op1=$ POST [ ”op1” ] ;
9
10. 4 FACTORISER LE CODE AVEC PHP
$op2=$ POST [ ”op2” ] ;
$ r e s u l t a t=$op1+$op2 ;
echo( ”Le r ˜A c sultat est $ r e s u l t a t ” ) ;
?>
<form name=”monFormulaire” action=” c a l c u l e t t e . php”
method=” post ”>
<div>
<input type=” text ” name=”op1” /> + <input
type=” text ” name=”op2” /> = <input
type=”submit” value=”Envoyer” />
</div>
</form>
</body>
</html>
Un mini additionneur
3.4 R´ecup´erer les donn´ees GET
A pr´esent, reprenez votre fichier et modifier le ”post” du formulaire par ”get”. Envoyez le
formulaire. Vous voyez que PHP n’a pas captur´e vos donn´ees. Il faut utiliser le tableau $ GET
pour le faire. Mais regardez votre barre d’adresse : les variables entr´ees apparaissent dans l’URL.
C’est l`a la diff´erence fondamentale entre POST et GET. Cel`a vous permet de communiquer
avec PHP avec de simples liens hypertextes. Cr´eer un lien qui effectue un calcul en passant les
param`etres dans son URL, `a la mani`ere de celle que vous voyez.
4 Factoriser le code avec PHP
Factoriser du code signifie se d´ebrouiller pour ne pas avoir `a retaper les mˆemes bouts de
code dans plusieurs fichiers. Pour un menu identique sur tout le site par exemple.
4.1 Ins´erer un menu
On peut pour cel`a utiliser la fonction include. Ouvrez le fichier page1.php et regardez son
effet. Cette m´ethode consiste `a r´eutiliser dans vos pages un bout de code que vous stockez
ailleurs.
4.2 Une autre m´ethode
Cette deuxi`eme m´ethode consiste `a rendre le corps de la page dynamique au lieu de ses
d´ecorations. Ouvrez le fichier pagedyn.php pour tester. Cette deuxi`eme m´ethode consiste `a
charger un contenu stock´e ailleurs. C’est un approche plus puissante et plus souple, bien que
plus complexe `a mettre en place sur un site web complet.
10