Vous êtes sur la page 1sur 57

PHP

Introduction

Mohammadi Zakaria Zakariamhm@gmail.com


---------------
Introduction
au langage
PHP
---------------
Généralités
• HTML : conception de pages destinées à être publiées.
• Page html : contient le texte à afficher et des instructions de
mise en page.
• HTML est un langage de description de page et non pas un
langage de programmation:
o pas d’instructions de calcul ou traitements suivant des
conditions.
• Des sites de plus en plus riches en informations
o Nécessité croissante d’améliorer le contenu de sites.
o Mises à jour manuelles trop complexes (automatiser les
MAJ).
Généralités
• Pages web statiques : Leurs contenus ne changent ni en
fonction du demandeur, ni en fonction d’autres paramètres
inclus dans la requête adressée au serveur (Toujours le même
résultat).
• Rôle du serveur : localiser le fichier correspondant au
document demandé et répond au navigateur en lui envoyant le
contenu de ce fichier.
• Besoin de réponses spécifiques : passage de pages statiques à
pages dynamiques.
PHP

public/www
2

Serveur http
3
client
index.html
4

support
Le répertoire
Généralités
• Langage de script-serveur est :
o un programme stocké sur un serveur et exécuté par celui-
ci,
o qui passe en revue les lignes d’un fichier source pour en
modifier une partie du contenu, avant de renvoyer à
l’appelant ( un navigateur par exemple) le résultat du
traitement.
• La tâche d’interprétation des ordres à exécuter est déléguée à
un composant, souvent appelé moteur installé sur le serveur.
Généralités
• Langage côté client : traité par la machine qui accueille le
logiciel de navigation.
• Les résultats peuvent varier en fonction de plate-forme utilisée
: Un programme en JavaScript pourra fonctionner sous
Netscape et poser problème sous d’autres explorateurs.
• Les résultats peuvent être différents suivant la machine (PC,
Mac).
• Nécessité de tests importants
• Ne permettent pas de masquer les sources du programme
• Sont indépendants du serveur.
Généralités
• Langage côté serveur : le travail d’interprétation du programme
est réalisé par le serveur.
• indépendant de la machine et du logiciel de navigation utilisés
pour la consultation.
• Compatibles avec tous les navigateurs et toutes leurs versions.
• Permettre le masquage des sources des programmes.
• Nécessité de recharger la page chaque fois que celle-ci est
modifiée.
PHP
• PHP : Hypertext Pre-Processor.
• Langage de création de page web dynamiques côté serveur.
• Connaît un succès toujours croissant sur le Web et se
positionne comme un rival important pour ASP.
• Combiné avec le serveur Web Apache et la base de données
MySQL, PHP offre une solution particulièrement robuste,
stable et efficace.
• Gratuité : Tous les logiciels sont issus du monde des logiciels
libres (Open Source).
PHP
• Langage de scripts permettant la création d’applications Web.
• Indépendant de la plate-forme utilisée (côté-serveur).
• La syntaxe provient des langages C, Perl et Java.
• Ses principaux atouts sont:
o Gratuité et disponibilité du code source (PHP4 est
distribué sous licence GNU GPL) ,
o Simplicité d'écriture de scripts,
o Possibilité d'inclure script PHP au sein d'une page HTML ,
o Simplicité d'interfaçage avec des bases de données,
o L'intégration au sein de nombreux serveurs web (Apache,
Microsoft IIS, ...).
PHP

1 SGBD
MySQL
public/ww
client w
4

fichier.php 2

Serveur http
3
Module PHP

Génération Fichier_bis.php
du code html
PHP
• Les instructions PHP peuvent être insérées dans les
commandes HTML
• Ceci facilite le développement des sites web dynamiques.
• Lorsque PHP commence à traiter un fichier, il ne fait
qu'afficher le texte HTML qu'il rencontre.
• Faut indiquer à PHP le début d'une telle séquence, en passant
en mode PHP comme tel :
<?php /* Instructions PHP */ ?>
Ou
<? /* Instructions PHP */ ?>
PHP
• Les instructions PHP peuvent être insérées dans les
commandes HTML
• Ceci facilite le développement des sites web dynamiques.
• Lorsque PHP commence à traiter un fichier, il ne fait
qu'afficher le texte HTML qu'il rencontre.
• Faut indiquer à PHP le début d'une telle séquence, en passant
en mode PHP comme tel :
<script language= "php" >……< /script>
Ou
<% ..... %>
Serveur Web locale: EasyPHP
• Seul un serveur web peut générer le PHP.
• Le client ne peut pas interpréter les scripts PHP.
• Faut donc trouver un moyen pour compiler les scripts PHP
localement.
• Vous pourrez ainsi travailler dessus pour réaliser votre site en
PHP.
• EasyPHP est en fait un "package" qui contient tous les
programmes nécessaires pour pouvoir traiter du PHP !
• www.easyphp.org
EasyPHP
• Apache : c'est le programme qu'utilisent les serveurs. Il permet
au serveur de distribuer des pages web... mais il ne connaît que
le HTML !
• PHP : PHP est comme un "plugin" de Apache. Il a besoin
d'Apache pour fonctionner, et grâce à lui Apache saura
travailler sur des pages PHP.
• Apache + PHP = un serveur PHP.
• MySQL : c'est un SGBD(OPEN) pour la gestions des bases de
données.
• PHPmyAdmin : Interface utilisateur qui permette de faciliter
la gestion des bases de données.
Administration EasyPHP
• Faites un clic droit sur l'icône EasyPHP dans la barre des
tâches. Un petit menu s'ouvre.
• Le bouton "Administration" permet de configurer EasyPHP.
Administration EasyPHP

• Apache > Alias : c'est là qu'on va se rendre pour configurer


EasyPHP. Cela permet d'indiquer les sites web que vous avez
sur votre disque dur, pour que EasyPHP les reconnaisse.
Administration EasyPHP

• PhpMyAdmin > Gestion BDD : c'est par ici que vous pourrez
gérer votre base de données.
Administration EasyPHP

• Nom de l'alias : c'est le nom de votre site.


• Le chemin du répertoire.
• Paramètres par défaut du répertoire : vous n'y touchez pas.
---------------
Variables
&
Instructions
---------------
PHP: 1er fichier
<html>
<head>
<title> Notre première instruction : echo </title>
</head>
<body>
<h2>Affichage de texte avec PHP</h2>
<p> Cette ligne a été écrite entièrement en HTML.<br />
<?php
echo "Hello world";
print "Hello world";
echo("Hello PHP");
print("Bienvenue sur ma page PHP"); ?>
</p>
</body>
</html>
PHP: Commentaire

• /*forme de commentaires 1 */
Attention pas d’imbrication comme en langage C

• # forme de commentaires 2
Ce type de commentaire à la Unix est très peux utilisé

• // forme de commentaires 3
Comme en langage C++
PHP: Types et Variables
• Le typage des variables est implicite en PHP : pas besoin 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 $.
Exemple: $Variable
• Les variables peuvent être de type entier (integer), réel (double),
chaîne de caractères (string), tableau (array), objet (object),
booléen (boolean).
PHP: Types et Variables
• Il est possible de convertir une variable en un type primitif
grâce au opérations de cast.
• Exemple :
$str = ’’12’’; // $str vaut la chaîne ‘’12’’
$nbr = (int)$str; // $nbr vaut le nombre 12
• L’opération de cast est une conversion de type. L’action de
caster consiste en convertir une variable d’un type à un autre.
PHP: Types et Variables
• Quelques fonctions :
o empty($var) : renvoie vrai si la variable est vide.
o isset($var) : renvoie vrai si la variable existe.
o unset($var) : détruit une variable.
o gettype($var) : retourne le type de la variable.
o settype($var, ’’type’’) : convertit la variable à type.
o is_long(), is_double(), is_string(), is_array(),
is_object(), is_bool(), is_float(), is_numeric(),
is_integer(), is_int()…
PHP: Types et Variables
• Une variable peut avoir pour identificateur la valeur d’une
autre variable.
• Syntaxe : ${$var} = valeur;
• Exemple :
$toto = ’’var’’;
${$toto} = 2002;
echo $var; // la variable $var vaut donc 2002
PHP: Types et Variables
• Une variable locale à une fonction n’est pas connue dans le
reste du programme.
• Une variable créée dans un bloc n’est pas connue dans les
autres blocs, mêmes ceux supérieurs.
PHP: Opérateurs
• Opérateurs arithmétiques :
+ (addition), - (soustraction), * (multiplié), / (divisé), %
(modulo), ++ (incrément), --(décrément).
• Opérateurs d’assignement :
= (affect.), *= ($x*=$y équivalent à $x=$x*$y), /=, +=, -=, %=
• Opérateurs logiques :
and, && (et), or, || (ou), xor (ou exclusif), ! (non)
• Opérateurs de comparaison :
== (égalité), != (différence), <, <=, >, >=.
PHP: Constantes
• Des constantes sont des variables dont la valeur est fixée une
fois pour toute. Les constantes ne portent pas le symbole $ en
début d’identificateur et ne sont pas modifiables.
• define("var",valeur): définit la constante var de valeur valeur.
• Exemple :
define("author", "Ahmed");
echo author; // affichera Ahmed
• Contrairement aux variables, les identificateurs des constantes
(et des fonctions) ne sont pas sensibles à la casse.
PHP: Références
• à la manière des pointeurs en C, on peut récupérer la référence
à une variable grâce à l’opérateur & (ET commercial).
• Exemple 1 :
$toto = 100; // $toto initialisée à 100
$var = &$toto; // $var fait référence à $toto
$toto++; // on change la valeur de $toto
echo $var; // $var vaut alors la valeur 101
PHP: Mathématiques
• Il existe un ensemble de fonctions mathématiques :
o abs($x) : valeur absolue
o ceil($x) / floor($x) : arrondi supérieur/inférieur.
o pow($x,$y) : x exposant y
o round($x,$i) : arrondi de x à la ième décimale
o max($a, $b, $c …) : l’argument de valeur maximum
o Et aussi : cos, sin, tan, exp, log, min, pi, sqrt…
• M_PI : valeur de pi (3.14159265358979323846)
• M_E : valeur de e (2.7182818284590452354)
PHP: Mathématiques
• Nombres aléatoires :
o 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.
o srand() : initialisation du générateur aléatoire
o getrandmax() : retourne la valeur du plus grand entier
pouvant être généré
PHP: Chaines de caractères
• Une variable chaîne de caractères n’est pas limitée en nombre
de caractères. Elle est toujours délimitée par des simples
quottes ou des doubles quottes.
• Exemples :
$nom = "Ahmed";
$prenom = ‘Alaoui’;
PHP: Chaines de caractères
• Les doubles quottes permettent l’évaluation des variables et
caractères spéciaux contenus dans la chaîne (comme en C)
alors que les simples ne le permettent pas.
• Exemples :
echo "Nom: $nom";
echo ‘Nom: $nom’;
• Quelques caractères spéciaux : \n (nouvelle ligne), \r (retour à
la ligne), \t (tabulation horizontale), \\ (antislash), \$ (caractère
dollars), \’’ (double quotte).
• Exemple : echo "Hello Word !\n";
PHP: Chaines de caractères
• Opérateur de concaténation de chaînes :
$x = ‘’Hello’’;
$y = ‘’Word’’;
echo $x.$y;

$name = "Henry";
$whoiam = $name." IV";

$text = ‘Patati’;
$text .= " et patata…";
PHP: Chaines de caractères
• Affichage d’une chaîne avec echo:
echo ‘Hello Word.’;
echo "Hello ${name}\n";
echo "Nom : ", $name;
echo ("Bonjour");
PHP: Chaines de caractères
• strlen($str) : retourne le nombre de caractères d’une 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
• 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
PHP: Variables
• Une variable est un objet repéré par son nom, qui peut être
nombre, texte ou autre. Les variables conservent
temporairement des valeurs, qui pourront être modifiées lors
de l'exécution du programme.
• PHP supporte quatre types scalaires : Booléen, entier, nombre
à virgule flottante, chaîne de caractères.
• PHP supporte deux types composés : Tableau, objet.
PHP: Variables
• Le typage des variables est implicite en PHP. Il n’y a donc pas
besoin de les déclarer ni même de les initialiser avant leur
utilisation, toutefois, les noms de variables doivent répondre à
certaines règles syntaxiques:
o Tout nom de variable doit obligatoirement être précédé du
caractère dollar ($).
o Tout nom de variable doit commencer par une lettre
(majuscule ou minuscule) ou un "_", mais jamais un
chiffre.
PHP: Variables
• Le typage des variables est implicite en PHP. Il n’y a donc pas
besoin de les déclarer ni même de les initialiser avant leur
utilisation, toutefois, les noms de variables doivent répondre à
certaines règles syntaxiques:
o Un nom de variable peut comporter des lettres, des chiffres
et le caractère _ (les espaces ne sont pas autorisés).
o Les noms de variables sont sensibles à la casse.
o On affecte des valeurs aux variables à l’aide du signe =
PHP: Variables
• Les variables sont précédées du signe $
$bonjour = "Hello";
$nom = "Hello";
$nomcomplet = "Paul &nom";
$email = "google". "."."com";
PHP: Variables
• Les variables référencées (&)

<?php
$f = 'Pierre'; // Assigne la valeur 'Pierre' à $f
$b = &$f; // Référence $f avec $b.
$b = "Mon nom est Pierre"; // Modifier $b
echo $f; // $f est aussi modifiée
echo $b;
?>
PHP: Variables
• Le type d’une variable est à liaison superficielle :
<?php
$a = 100;
echo $a;
$a=“une chaine de caractères”;
echo $a;
?>
PHP: Variables
• Le type d’une variable est à liaison superficielle :
<?php
$a = 100;
echo $a;
$a=“une chaine de caractères”;
echo $a;
?>
PHP: Variables
• Il est pratique d'avoir parfois des noms de variables qui sont
variables. C'est−à−dire un nom de variable qui est affectée et
utilisée dynamiquement. Une variable classique est affecté avec
l'instruction suivante:
<?php $val = "bonjour"; ?>

• Une variable dynamique prend la valeur d'une variable et


l'utilise comme nom d'une autre variable :
<?php $$val = "monde"; ?>
PHP: Portée des Variables
• La portée d'une variable dépend du contexte dans lequel la
variable est définie.
• Les constantes, les fonctions et classes sont partout visible
donc accessible.
• Variable globales : ne peuvent être utilisées telles quelles au
niveau du corps des fonctions. Elle ne peut être au sein d’une
fonction que si elle est précédée du mot réservé global.
• Variable locales : sont définies au niveau du corps des
fonctions
PHP: Portée des Variables
• Toute variable utilisée dans une fonction est par définition,
locale.
<?php
$a = 1;
function test() {
$a = 10;
echo $a; /* portée locale */
}
test();
?>
PHP: Portée des Variables
• Une variable statique a une portée locale uniquement, mais elle
ne perd pas sa valeur lorsque le script appelle la fonction.
<?php
function test() {
$a = 0;
echo $a;
$a++; }
test(); /* Appel de la fonction */
?>
Cette fonction est un peu inutile car à chaque fois qu'elle est
appelée, elle initialise $a à 0 et affiche "0" .
L'incrémentation de la variable ($a++) ne sert pas à grand chose,
car dès que la fonction est terminée la variable disparaît.
PHP: Portée des Variables
• Une variable statique a une portée locale uniquement, mais elle
ne perd pas sa valeur lorsque le script appelle la fonction.
<?php <?php
function test() { function test() {
$a = 0; static $a = 0;
echo $a; echo $a;
$a++; } $a++; }
test(); /* Appel de la fonction */ test(); /* Appel de la fonction */
?> ?>
Pour faire une fonction de comptage utile, qui ne perdra pas la
trace du compteur, la variable $a est déclarée comme statique.
L’appel de la fonction Test() affichera l’ancienne valeur de $a
après incrémentation de 1.
PHP: Conversion des types
• La fonction gettype() permet de lire le type d’une variable.
• On peut assigner les types suivants :
array, class, double, integer, string.
• La fonction settype() permet de changer le type d’une variable:

<?php
$a = 3.14;
If(gettype($a)=="double") settype($a, "integer" );
?>
PHP: Les opérateurs arithmétiques

Exemple Nom Résultat


$a + $b Addition Somme de $a et $b.
$a − $b Soustraction Différence de $a et $b.
$a * $b Multiplication Produit de $a et $b.
$a / $b Division Quotient(entier/réel) de $a/ $b
$a % $b Modulo Reste de $a divisé par $b.
PHP: Affectation
• L’affectation se fait en utilisant le symbole =
$a = 3;
$a += 5; // affecte la valeur 8 à la variable $a.
// correspond à l'instruction '$a = $a + 5');
• En plus, il existe des "opérateurs combinés" pour tous les
opérateurs arithmétiques et pour les opérateurs sur les chaînes
de caractères.
$b = "Bonjour";
$b .= " le monde!"; // identique à $b=$b."le monde!";
PHP: Affectation
• L’affectation se fait en utilisant le symbole =
$a = 3;
$a += 5; // affecte la valeur 8 à la variable $a.
// correspond à l'instruction '$a = $a + 5');

• Affectation par valeur et par référence :


o Affectation par valeur : $b=$a
o Affectation par (référence) variable : $c = &$a
PHP: Comparaison
• Permettent de comparer deux variables.
Exemple Résultat
$a == $b Vrai si $a est égal à $b.
$a != $b Vrai si $a est différent de $b.
$a < $b Vrai si $a est inférieur strict à $b.
$a > $b Vrai si $a grand strict à $b.
$a <= $b Vrai si $a est inf ou égal à $b.
$a >= $ Vrai si $a est sup ou égal à $b.
PHP: Variables prédéfinies (1)
• Les variables d'environnement dépendant du client :
Variable Description
$_SERVER["HTTP_HOST"] Nom d'hôte de la machine du client
(associée à l'adresse IP)
$_SERVER["HTTP_REFERER"] URL de la page qui a appelé le script PHP
$_SERVER["HTTP_ACCEPT_LANGUAGE"] Langue utilisée par le serveur
(par défaut en-us)
$_SERVER["HTTP_ACCEPT"] Types MIME reconnus par le serveur
(séparés par des virgules)
$_SERVER["CONTENT_TYPE"] Type de données contenu présent dans le
corps de la requête. Il s'agit du type MIME
des données
$_SERVER["REMOTE_ADDR"] L'adresse IP du client appelant le script CGI
$_SERVER["PHP_SELF"] Nom du script PHP
PHP: Variables prédéfinies (2)
• Les variables d'environnement dépendant du serveur :

Variable Description
$_SERVER["SERVER_NAME"] Le nom du serveur
$_SERVER["HTTP_HOST"] Nom de domaine du serveur
$_SERVER["SERVER_ADDR"] Adresse IP du serveur

$_SERVER["SERVER_PROTOCOL"] Nom et version du protocole


utilisé pour envoyer la
requête au script PHP
$_SERVER["DATE_GMT"] Date actuelle au format GMT
$_SERVER["DATE_LOCAL"] Date actuelle au format local
$_SERVER["$DOCUMENT_ROOT"] Racine des documents Web
sur le serveur
PHP: Variables prédéfinies (3)
• Affichage des variables d'environnement : la fonction
phpinfo()
<? echo phpinfo(constante); ?>
INFO_CONFIGURATION affiche les informations de configuration
INFO_CREDITS affiche les informations sur les auteurs du
module PHP
INFO_ENVIRONMENT affiche les variables d'environnement
INFO_GENERAL affiche les informations sur la version de PHP.

INFO_LICENSE affiche la licence GNU Public

INFO_MODULES affiche les informations sur les modules


associés à PHP
INFO_VARIABLES affiche les variables PHP prédéfinies

Vous aimerez peut-être aussi