Vous êtes sur la page 1sur 16

Programmation Web 2

Les bases du langage PHP

Chaker BEN MAHMOUD

Déclaration d’un script PHP

Les pages HTML sont décrites à l’aide de balises


balises.
En PHP nous allons soit :
– Développer des scripts (pages) contenant uniquement du code PHP
PHP,
– Écrire des pages “mixtes
mixtes” contenant des balises HTML (le squelette de la
page) et des commandes PHP
PHP.
Pour cela il a été défini une balise nommée <?PHP ... ?> qui
permet d’indiquer le code compris entre les balises est un
script PHP qui devra être interprété avant d’être envoyé au
client.
<?php
// Le code PHP se met ici
?>

Page 2

1
Déclaration d’un script PHP

Il existe d’autres balises permettant de spécifier le début


d’une zone de script PHP par exemple :
– Les balises <? ... ?>
– Les balises <% ... %>
Dans ce cours nous n’exploiterons que les balises <?PHP ... ?>
qui sont les plus explicites,
L’ensemble des opérations composant un script PHP doit être
encadré par les balises de début et fin de script.
<?php
// code PHP Ligne 1
// code PHP Ligne 2
// code PHP Ligne 3
Page 3
?>

Premier exemple : “Bienvenue à l’ENIG”


Nous allons commencer par réaliser notre premier exemple
en PHP en faisant en sorte que le script génère le message
Bienvenue à l’ENIG”,
“Bienvenue l’ENIG
Le mot clef echo disponible en PHP permet de spécifier à
l'interpréteur qu’il doit émettre la chaîne de caractère dans le
flux de sortie,
<html>
<head>
<title> Ma page minimal en PHP </title>
</head>
<body>
<?
<?php
php
echo "<B>Bienvenue à l'ENIG</B>";
?>
</body>
Page 4
</html>z

2
Les commentaires

Il est important comme dans tous langages de pouvoir


code pour cela PHP met à la disposition du
commenter son code,
concepteur une syntaxe identique au C pour les
commentaires,
L’ensemble des commentaires sont supprimés lors de
l'exécution et n'apparaîtront jamais dans le code HTML
envoyé au navigateur qui à provoqué l'exécution du script
PHP.

// Voici une première manière /* Voici une seconde manière


// d’écrire ses commentaires d’écrire ses commentaires
// dans son programme en PHP dans son programme en PHP */

Page 5

Remarques

Les fichiers mixtes doivent être mémorisés avec des


extensions “.php
.php”” sinon le serveur WEB ne les “interpretera
interpretera”
pas avant de les transmettre au navigateur,
Il vous semble plus facile d’écrire du code HTML “simple
simple”
que de mixer les 2...
Cette approche a d’indéniables avantages :
– Cela va nous permettre d’aller chercher des informations dans
des BDD avant de les afficher,
– Effectuer des affichages conditionnels (suivant les droits des
utilisateurs),
– Effectuer des itérations (répéter des affichages N fois en fonction
des données), etc.

Page 6

3
Les bases du langage PHP

Chaque instruction (ou commande) doit nécessairement se


terminer par un caractère “;” comme en C/Java,
– Sinon vous obtiendrez un “Parser Error à l’execution,
Parser Error”
La commande “echoecho” permet de renvoyer le texte entre les
guillemets vers la sortie de l'interpréteur,
– Pour écrire des guillemets en PHP, il faut écrire \”
Le serveur WEB va gérer le passage des parties de scripts
dans la page HTML à l’interpréteur PHP disponible sur le
serveur,
Le langage ne tient pas compte de la casse uniquement pour
commandes Ainsi les commandes : echo = Echo = ECho =
les commandes.
ECHO = ... sont identiques.
Page 7

Les variables dans le langage PHP


Les variables sont des conteneurs permettant de stocker de
l’information qui peut ne pas être numérique (chaîne de
caractères, dates, tables, etc.),
Chaque variable doit posséder un identifiant afin de pouvoir
être accéder en lecture et en écriture,
– Le nom des variables doit toujours commencer par le caractère “$$”,
• Le caractère suivant “$$” est nécessairement une lettre,
lettre
– La taille du nom d’une variable n’est pas limité en nombre de
caractères,
– Le nom d’une variable peut contenir des lettres, des chiffres et le
caractère “_”,
– Pas de caractères accentués, Pas d’espace dans le nom des variables.
La langage PHP tient compte de la casse des noms de
variables :
$TOTO != $toto != $Toto != $ToTo = ...
Page 8

4
Affectation d’une valeur à une variable

Les variables en PHP ne sont pas explicitement typées ni


explicitement déclarées
déclarées,
– Pas de définition du type de données mémorisées,
L’affectation
affectation des valeurs est réalisé à l’aide de l’opérateur
opérateur “=
=”
– Lors de l’affectation, le typage de la variable est réalisé,
– Ce typage peut varier durant l'exécution du programme,
Exemples d’affectations de données à des variables
<?php
$i = 4 ; // initialisation par un entier
$ecole = "ESCEM"; // initialisation par une chaîne
$nb=12345678.99; // initialisation par un réel
$x = "1.2 Dinars"; // initialisation par une chaîne
?>
Page 9

Affectation d’une valeur à une variable

Déclarer une variable signifie réserver et nommer une zone


mémoire qui correspond au type de données voulu (entier,
alphanumérique, …). Ceci se fait en donnant un nom et un
type à la variable.
PHP permet aussi de déclarer un type pour chaque variable
en utilisation la fonction : settype
settype()

<?php
settype ($i , "integer
integer""); // type entier
settype ($ecole , "string
string""); // chaîne de caractères
settype ($nb , "double
double""); // nbre réel
?>

Page 10

5
Définition de constantes en PHP
Les constantes en PHP possèdent les mêmes capacités
d’utilisation que les variables à l’exception prête que l’on ne
peut pas écrire dedans !
Pour définir les champs constants dans un programme en
PHP, on utilisera le mot clef define (“nom valeur”),
nom”,, “valeur
Lors de l’usage d’une constante, il ne faut pas faire précéder
son nom du caractère “$$”,
<?
<?php
php
define ("
("Ecole
Ecole",", « ENIG
ENIG");
"); // la variable "Ecole" vaut « ENIG"
define ("
("PI
PI",
", 3.14
3.14);); //La variable "PI" vaut "3.14"
define ("
("font
font",
", ""<FONT
<FONT size=4 color=#FF0000><B>
color=#FF0000><B>") ")
// La variable "font" contient la chaîne Html
defined ("
("Ecole
Ecole");
"); //Renvoi 1 (VRAI) car la constante existe
defined ("
("Pi
Pi");
"); //Renvoi 0 (FAUX) car la constante n'existe pas
?>
Page 11

Les chaînes de caractères

Les chaînes de caractères en PHP peuvent être délimitées à


l’aide de 2 caractères particuliers : “ ou ‘
Le choix d’un délimiteur provient de l’utilisation possible du
second dans la chaîne de caractères,

<?php
$chaine1 = " Il m’a dit : ‘au revoir’ ";
$chaine2 = ‘ Il m’a dit : "au revoir" ’;
$chaine3 = " Il m’a dit : \"au revoir\" ";
echo "Essai 1 => $chaine1
$chaine1";
echo "Essai 2 => $chaine2
$chaine2";
echo "Essai 3 => $chaine3
$chaine3";
?>
Page 12

6
Concaténation de chaînes de caractères

Il est possible de simplement former une chaîne de caractères


à l’aide d’autres chaînes en les plaçant bout à bout,
L’opérateur
opérateur de concaténation utilisé pour réaliser ce chaînage
de chaînes de caractères est l’opérateur “..”
D’autres manipulations de chaînes sont possibles et seront
étudiées dans la suite de ce document.

<?php
$nom = "AMIR";
$prenom = "LOTFI";
$concat = $prenom.$nom;
echo $concat;
?>
Page 13

Les tableaux de données

Les tableaux en PHP sont nommés array array, ces variables


particulières doivent être initialisées à l’aide de la commande
array,
Les tableaux en PHP sont indexés à l’aide des caractères “[[ ]”
]
<?php
$tablo = array("element1" , "element2" , "element3");
?>

<?php <?php
$tablo[] = "element1"; $tablo[0] = "element1";
$tablo[] = "element2"; $tablo[1] = "element2";
$tablo[] = "element3"; $tablo[2] = "element3";
?> ?>

Page 14

7
Les tableaux associatifs

Les tableaux associatifs sont similaires à ceux précédemment


présentés dans le sens ou ils permettent de mémoriser des
informations structurées,
accès aux différentes données ne se fait plus en fonction des
L’accès
indices des données, mais à l’aide d'identifiants,
– Cela évite les questions sur l’indice de mémorisation de la données
représentant l'âge, le prix ou la race du chien ...

<?php
// On crée notre array $animal
$animal = array ( "Type
Type" => "Chien
Chien",
Nom" => "Viky
"Nom Viky",
Age" => 2 ,
"Age
Race" => "Lhassa
"Race Apso );
Lhassa Apso“
?>
Page 15

Tableau multidimensionnel

<?php
$tablo = array ( array ("patron", "Marc"),
array ("commercial", "Louis") );
?>

<?php
$tablo[0] [0]= "patron";
$tablo[0] [1]= "commercial";
$tablo[1] [0]= "Marc";
$tablo[1] [1]= "Louis";
?>

Page 16

8
Portée des variables
Variable locale : Une variable déclarée dans une fonction aura
une portée limitée à cette seule fonction. On ne pourra donc pas
utiliser sa valeur ailleurs dans le script. C'est une variable locale à
la fonction.
– Exemple : $ecole ="ESCE Manouba";
// n'est connue que la fonction dans laquelle elle se trouve
Variable globale : Si la variable est déclarée tout au début du
script, en dehors et avant toute fonction, elle est toujours globale.
Afin de distinguer une variable locale qui porterait le même nom
qu'une variable globale, il faut la déclarer à l'aide du mot-clé
global.
Variable statique : Implicitement, les variables locales d'une
fonction sont réinitialisées à chaque appel de fonction. Pour
conserver leurs valeurs précédentes, il faut les déclarer par le mot-
clé static
static.
Page 17

Fonctions utiles pour les variables


renvoie true si la variable est vide ou vaut 0, sinon
empty ($nom_var) revoie false

explode ou split Découper une chaîne

Implode et join Les fonctions inverses

sert à savoir si une variable possède une valeur (true


isset ($nom_var) ou false): $x = 2.3; $val = isset ($x) ; // true

ltrim, chop, trim Enlever les espaces en début ou fin d’une chaîne

str_replace ou substr_replace Remplacer une partie d’une chaîne par une autre

Strlen Longueur d’une chaîne

Strpos Position d’une chaîne dans une autre

Strtolower Conversion majuscules-minuscules

Strtoupper Conversion minuscules-majuscules

Substr Un extrait d’une chaîne

détruit une variable:


unset ($nom_var) unset ($x); // isset($x) donne false
Page 18

9
Les opérateurs arithmétiques et logiques

++ , -- incrémentation/décrémentation
! Négation
*, /,% arithmétique
+,- arithmétique
. concaténation des chaînes de caractères
< , <= , > , >= comparaison
== , != égalité et différence
AND ou && Et logique
OR ou || Ou logique

Page 19

Les structures de contrôle

Afin de gérer les différentes possibilités lors de l'exécution


du programme, le langage PHP propose plusieurs
structures conditionnelles :
– Les conditions simples, les structures IF ... ELSE ...

– Les conditions multiples IF ... ELSEIF ... ELSE ...


– Les structures SWITCH ... CASE ...

En fonction du nombre de cas possibles, et du type de


condition, vous aurez le choix entre les différentes
structures plus ou moins adéquates...

Page 20

10
La structure conditionnelle : IF - ELSE

<?php
$age = 8;

if ($age <= 12)


{ echo "Salut ! Bienvenue sur mon site !<br />";
$autorisation_entrer = "Oui";
}
else
{ echo "Ceci est un site pour enfants, vous êtes trop vieux
pour pouvoir entrer. Au revoir !<br />";
$autorisation_entrer = "Non";
}

echo "Autorisation d'entrer : $autorisation_entrer";


?>
Page 21

La structure conditionnelle : IF - ELSEIF - ELSE

<?php
if ($autorisation_entrer == "Oui")
{ // SI on a l'autorisation d'entrer
// instructions à exécuter quand on est autorisé à entrer
}
elseif ($autorisation_entrer == "Non")
{ // SINON SI on n'a pas l'autorisation d'entrer
// instructions à exécuter quand on n'est pas autorisé entrer
}
else
{ // SINON (la variable ne contient ni Oui ni Non,
// on ne peut pas agir)
echo "Euh, je ne connais pas ton âge, tu peux me le rappeler ?";
}
?>
Page 22

11
La structure conditionnelle : SWITCH - CASE

<?php
$mois = 10;
switch ($mois)
{
case 1: echo "Le 1er mois est Janvier";
break;

case 2: echo "Le 2nd mois est Février";


break;

case 3: echo "Le 3ème mois est Mars";


break;

default: echo "Désolé mais je ne connais pas les autres mois...";


default
}
?>
Page 23

Les structures de réitération - Les boucles


Afin de permettre à l’utilisateur de répéter l'exécution de
blocs d’instructions,
d’instructions le langage PHP fourni différentes
structures :
– Les boucles de type WHILE (Tant ... Que),
– Les boucles de type DO ... WHILE (Faire ... Tant Que),
– Les boucles FOR (Pour ... ),
En fonction du déterminisme ou de l’indéterminisme des
boucles que vous devez écrire, vous choisirez l’une ou l’autre
des structures de réitération proposées par le langage,
d'exécution si ce dernier est
PHP analyse son temps d'exécution,
supérieur à 15s alors ce dernier s'arrête en spécifiant un
message d’erreur,
– Evite les boucles infinies en mode administrateur
Page 24
=> le plantage du serveur !

12
Les boucles de type WHILE

<?php
while (condition est vrai)
{
// instructions à exécuter dans la boucle
}
?>

<?php
$nombre_de_lignes = 1;
while ($nombre_de_lignes <= 100)
{
echo "Ceci est la ligne n°$nombre_de_lignes
$nombre_de_lignes<br />";
$nombre_de_lignes++;
}
?>
Page 25

Les boucles de type DO ... WHILE

<?php
do {
// instructions à exécuter dans la boucle
}
While (sortie si condition est faux)
?>

<?
<?php
php
$nombre_de_lignes = 1;
do
{
echo "Ceci est la ligne n°$$nombre_de_lignes<br
nombre_de_lignes />";
$nombre_de_lignes++;
}
while ($nombre_de_lignes <= 100)
?>
Page 26

13
Les boucles de type FOR

<?php
for ($var
$var = val_Int ; $var jusqu’à val_fin ; $var++)
$var
{
// instructions à exécuter dans la boucle
}
?>

<?php
for ($nombre_de_lignes
$nombre_de_lignes = 1; $nombre_de_lignes <= 100;
$nombre_de_lignes++)
{
$nombre_de_lignes<br />";
echo "Ceci est la ligne n°$nombre_de_lignes
}
?>
Page 27

La boucle Foreach

La boucle Foreach est particulièrement efficace pour


lister les tableaux associatifs dont il n’est nécessaire
de connaître ni le nombre d’éléments ni les clés.

<?
<?php
php
Foreach ($tableau
$tableau as $valeur
$valeur)
{ // instructions à exécuter dans la boucle
}
?>

<?
<?php
php
Foreach ($tableau
$tableau as $clé => $valeur)
$valeur
{ // instructions à exécuter dans la boucle
}
?>
Page 28

14
La boucle Foreach

<?
<?php
php
$t1 = array ( 'premier' => 'N° 1', 'deuxieme' => 'N° 2',
'troisieme' => 'N° 3');

foreach ($t1
$t1 as $key => $value
$value)
{
echo 'Cet élément a pour clé " ' . $key . '
" et pour valeur " ' . $value . ' "<br />';
}
?>

Page 29

Définition et appel de fonctions


Les fonctions sont des blocs d’instructions destinées à
accomplir des tâches répétitives dans le code,
Les fonctions doivent avant être d’utilisées avoir été :
– Déclarées avec un corps de fonction spécifiant les opérations à réaliser
lors de l’appel,
– Posséder un identifiant unique permettant de savoir comment référencer
ce bloc d’instructions dans la suite du programme,
<?php
function DireBonjour($nom)
{
echo "Bonjour $nom !<br />";
}

DireBonjour("Bertrand
DireBonjour Bertrand");
?>
Page 30

15
Transmission des arguments : par valeur et par référence
Par valeur".
La transmission par défaut est celle dite "Par valeur La
variable conserve sa valeur initiale après l'appel de la
fonction même si celle-ci l'a modifiée.
<?php
$a=5; // valeur initiale.
function double
double($n) echo ("double=" . double ($a) . " valeur= " . $a) ;
{ $n = $n * 2;
return $n; Affichage après appel:
} double=10 valeur=5
?>
Par référence"
La transmission "Par référence signifie que la valeur initiale
peut être modifiée dans la fonction.
<?php
$a=5; // valeur initiale.
function double
double($n) echo ("double=" . double (&
&$a) . " valeur= " . $a) ;
{ $n = $n * 2;
return $n; Affichage après appel:
} double=10 valeur=10
?>
Page 31

Utilisation des fonctions

L'écriture des fonctions et procédures peut se faire sur une


page (php) différente de celle de l'appel.
Il suffira alors d'inclure la page contenant les fonctions dans
la page d'appel. Nous disposons pour cela de 2 fonctions
internes: require et include :

<?php
require("nom_fichier1.php");
require
include
include("nom_fichier2.php");
?>

Page 32

16

Vous aimerez peut-être aussi