PHP: Hypertext Preprocessor Guide

Programming Languages · notes

Voir tous les documents en développement web

Chapitre 2 : Les notions de base

Table des matières

Introduction 3

I - PHP ? 4

1.

Définition ..................................................................................................................................... 4

2.

La petite histoire .......................................................................................................................... 4

II -

Présentation de PHP 5

III -

Le modèle et le fonctionnement 6

IV -

Intégration du PHP dans une page Web 7

V -

Variables, types et opérateurs 8

1. Opérateurs arithmétiques ............................................................................................................. 9

2. Opérateurs d'assignement ............................................................................................................ 9

3. Opérateurs logiques ...................................................................................................................... 9

4. Opérateurs de comparaison .......................................................................................................... 9

VI -

Constantes 10

VII -

Références 11

VIII -

Mathématiques 12

1. Quelques constantes ................................................................................................................... 12

2. Nombres aléatoires : ................................................................................................................... 12

3. Formatage d'un nombre ............................................................................................................. 12

IX -

Expressions 14

X -

Booléens 15

XI -

Chaînes de caractères 16

XII -

Affichage 18

Introduction

Pour toutes informations supplémentaires sur tout ce qui va suivre, vous pouvez consulter la documentation officielle de PHP.

Houcem Hedhly & Mohamed Ouali

3

PHP ?

I

Définition 4

La petite histoire 4

PHP ?

1. Définition

, est PHP: Hypertext Preprocessor, plus connu sous son sigle un langage de programmation libre principalement utilisé pour produire des pages Web dynamiques via un serveur HTTP, mais pouvant également fonctionner comme n'importe quel langage interprété de façon locale. PHP est un langage impératif orienté objet

PHP

2. La petite histoire

Le langage PHP fut créé en 1994 par Rasmus Lerdorf pour son . C'était à l'origine CC une bibliothèque logicielle en dont il se servait pour conserver une trace des visiteurs qui venaient consulter son CV. Au fur et à mesure qu'il ajoutait de nouvelles fonctionnalités, Rasmus a transformé la bibliothèque en une implémentation capable de communiquer avec des bases de données et de créer des applications dynamiques et simples pour le Web. Rasmus décida alors en 1995 de publier son code, pour que tout le monde puisse l'utiliser et en profiter. PHP s'appelait alors PHP/FI (pour ersonal ome age ools/ orm nterpreter).

site webSite web

H

T

P

P

F

I

En 1997, deux étudiants, Andi Gutmans et Zeev Suraski, redéveloppèrent le cœur de PHP/FI. Ce travail aboutit un an plus tard à la version 3 de PHP, devenu alors PHP: Hypertext Preprocessor. Peu de temps après, Andi Gutmans et Zeev Suraski commencèrent la réécriture du moteur interne de PHP. Ce fut ce nouveau moteur, appelé Zend Engine - le mot Zend est la contraction de ZEev et aNDi - qui servit de base à la version 4 de PHP.

En 2002, PHP est utilisé par plus de 8 millions de sites Web à travers le monde, en 2007 par plus de 20 millions et en 2013 par plus de 244 millions.

La version actuelle est la version 5, sortie le 13 juillet 2004.

La dernière mise à jour est la 5.6.13 datant du 03 septembre 2015.

4

Houcem Hedhly & Mohamed Ouali

Présentation de PHP

Présentation de PHP

II

PHP est un langage interprété (un langage de script) exécuté du côté serveur (comme les scripts CGICGI ASPASP , ...) et non du côté client (un script écrit en JavaScript ou une applet Java , s'exécute au contraire sur l'ordinateur où se trouve le navigateur).

Ses principaux atouts sont :

La gratuité et la disponibilité du code source (PHP est distribué sous licence GNU GPLGPL ) La simplicité d'écriture de scripts La possibilité d'inclure le script PHP au sein d'une page HTML (contrairement aux scripts CGi, pour lesquels il faut écrire des lignes de code pour afficher chaque ligne en langage HTML) La simplicité d'interfaçage avec des bases de données (de nombreux supportés, le plus utilisé avec ce langage est MySQL). L'intégration au sein de nombreux serveurs web (Apache...)

SGBDSGBD

sont

Houcem Hedhly & Mohamed Ouali

5

Le modèle et le fonctionnement

Le modèle et le fonctionnement

III

Dans une utilisation Web, l'exécution du code PHP se déroule ainsi : lorsqu'un visiteur demande à consulter une page Web, son navigateur envoie une requête au serveur HTTPServeur HTTP correspondant. Si la page est identifiée comme un script PHP (généralement grâce à l'extension PHP qui va traiter et générer le code final de la page .php ), le serveur appelle l' (constitué généralement d' ). Ce contenu est renvoyé au

interprèteInterprète HTMLHTML

, qui l'envoie finalement au client.

serveur HTTPServeur HTTP

, mais aussi souvent de

JSJavaScript

CSSCSS

et de

Une étape supplémentaire est souvent ajoutée : celle du dialogue entre PHP et la base de donnéesBase de données voulu, lui transmet des requêtes et en récupère le résultat, avant de fermer la connexion.

. Classiquement, PHP ouvre une connexion au serveur de

SGBDSGBD

Ce schéma explique ce fonctionnement :

6

Houcem Hedhly & Mohamed Ouali

Intégration du PHP dans une page Web

Intégration du PHP dans une page Web

IV

Les pages web sont au format format de la norme XML : <?php ... ?>

.php

Publicité

. Les pages web dynamiques générées avec PHP sont au . Le code source php est directement insérer dans le fichier html grâce au conteneur

.html

Exemple

<html> <body> <h1>Mon premier script</h1> <?php Echo “Bonjour”; ?> </body> </html>

Remarque : un script php se commente comme en C

<?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.

Houcem Hedhly & Mohamed Ouali

7

Variables, types et opérateurs

Variables, types et opérateurs

V

Le typage des variables est au préalable ni même de les initialiser avant leur utilisation.

implicite

en php. Il n'est donc pas nécessaire de déclarer leur type

Les identificateurs de variable sont précédés du symbole « $ » (dollars).

Exemple

$maVar

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

castcast

(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_numeric() is_integer

,

(),

is_int()

, ...

is_double() is_string() is_array() is_object

,

(),

is_bool() is_float() ,

,

Complément : Une variable peut avoir pour identificateur la valeur d'une autre variable.

Syntaxe : ${$var} = valeur

Exemple

$toto = "Hello";

${$toto} = 2012;

echo $Hello; // la variable $Hello vaut 2012

Attention

La portée d'une variable est limitée au bloc dans lequel elle a été créée. Une variable locale à une fonction n'est pas connue dans le reste du programme. Tout comme une variable du programme n'est pas connue dans une fonction. Une variable créée dans un bloc n'est pas connue dans les autres blocs, mêmes supérieurs.

8

Houcem Hedhly & Mohamed Ouali

Variables, types et opérateurs

1. Opérateurs arithmétiques -

+ (addition), (soustraction), (multiplication), (division), * (décrément). Ces deux derniers peuvent être pré ou post fixés

/

%

(modulo),

++

(incrément),

--

2. Opérateurs d'assignement

= (affectation),

*=

($x*=$y équivalent à $x=$x*$y),

3. Opérateurs logiques xor

, (ou),

(et),

and,

or ||

&&

(ou exclusif), (non)

!

/= += -= %= ,

,

,

4. Opérateurs de comparaison <

(inférieur strict),

== (égalité),

<=

(inférieur large),

> >= !=

,

,

(différence)

Remarque

Signalons un opérateur très spécial qui est équivaut à une structure conditionnelle complexe if then else à la différence qu'il renvoie un résultat de valeur pouvant ne pas être un booléen : l'opérateur ternaire.

(condition)?(expression1):(expression2);

condition

Si la expression2

.

Publicité

est vraie alors évalue et renvoie l'

expression1

sinon évalue et renvoie l'

Exemple

$nbr = ($toto<=10)?($toto):($toto%10);

Dans cet exemple, la variable prend sinon vaut le reste de la division entière de

$nbr

$toto $toto

pour valeur si 10 . par

$toto

est strictement supérieur à

10

,

Houcem Hedhly & Mohamed Ouali

9

Constantes

Constantes

VI

L'utilisateur 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 d'identificateur et ne sont pas modifiables.

Syntaxe

define("const",val) : définit la constante

const

(sans $) de valeur

val

Exemple

define("Auteur","Michel");

echo Auteur; // affiche ‘Michel'

define(MY_YEAR,1980);

echo MY_YEAR; // affiche 1980

Remarque

Contrairement aux variables, les identificateurs de constantes (et aussi ceux de fonction) ne sont pas sensibles à la casse.

10

Houcem Hedhly & Mohamed Ouali

Références

Références

VII

On peut à la manière des pointeurs en (ET commercial).

CC

faire référence à une variable grâce à l'opérateur &

Exemple

$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 $toto qui vaut alors 101

Exemple

function change($var) {

$var++; // la fonction incrémente en local l'argument

}

$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

Houcem Hedhly & Mohamed Ouali

11

Mathématiques

VIII

Mathématiques

Il existe une myriade 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 l'argument de valeur maximum

pi() : retourne la valeur de Pi

Et aussi :

cos sin tan exp log min pi sqrt ,

,

,

,

,

,

,

...

1. Quelques constantes

M_PI : valeur de pi (3.14159265358979323846)

M_E : valeur de e (2.7182818284590452354)

2. 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é

Conseil

L'algorithme utilisé par la fonction lent et possède un comportement pouvant se révéler prévisible. La fonction à

- issu de vieilles bibliothèques libres - est particulièrement équivalente

est plus rapide et plus sûre puisque l'algorithme utilisé se base sur la cryptographie.

mt_rand()

rand()

rand()

En cas d'utilisation de la fonction famille :

,

mt_rand() et

mt_rand([$x[,$y]]) mt_srand() mt_getrandmax()

.

, ne pas oublier d'utiliser les fonctions de la même

3. Formatage d'un nombre

number_format($nbr[,$dec,[$a,[$b]]]) : retourne une chaîne de caractères représentant le nombre représente le symbole faisant avec office de virgule et

décimales après formatage. La chaîne

Publicité

le séparateur de milliers.

$dec $b

$nbr

$a

Par défaut, le formatage est anglophone : $a = ''. '' et $b = '', ''.

Très utile pour représenter les nombres élevés au format francophone.

12

Houcem Hedhly & Mohamed Ouali

Mathématiques

Exemple

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

Houcem Hedhly & Mohamed Ouali

13

Expressions

Expressions

IX

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 ). L'inconvénient est l'illisibilité du code ainsi écrit sauf à le commenter suffisamment. Il faut donc les construire avec parcimonie et ne pas hésiter à les fractionner.

CC

Exemple

echo change( $nbr += ($toto>0)?(0):(--$toto) );

Attention

Attention à utiliser les parenthèses en fin de palier aux priorités des opérateurs.

14

Houcem Hedhly & Mohamed Ouali

Booléens

Booléens

X

(faux). Une valeur Les variables booléennes prennent pour valeurs 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' en l'entier 0 lui même casté en FALSE.

(vrai) et

castéescast

FALSE

TRUE

Exemple

if(0) echo 1; // faux

if('''') echo 2; // faux

if(''0'') echo 3; // faux

if(''00'') echo 4;

if('0') echo 5; // faux

if('00') echo 6;

if('' '') echo 7;

Cet exemple affiche 467. Donc l'espace ou la chaîne ‘'00'' ne sont pas considérés castés en FALSE.

Houcem Hedhly & Mohamed Ouali

15

Chaînes de caractères

Chaînes de caractères

XI

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 quotes ou des doubles quotes.

Exemple

$nom = ''Hugo'';

$prenom = ‘Victor';

Les doubles quottes permettent l'évaluation des variables et caractères spéciaux contenus dans la chaîne (comme en

) alors que les simples ne le permettent pas.

ShellShell

ou en

CC

Exemple

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).

Opérateur de concaténation de chaînes

. (point)

Exemple

$foo = ''Hello'';

$bar = ''World'';

echo $foo.$bar;

$name = ''Henry'';

$whoiam = $name. ''IV'';

$out = ‘Patati';

$out .= '' et patata...'';

Quelques fonctions

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

16

Houcem Hedhly & Mohamed Ouali

Chaînes de caractères

addslashes($str) : déspécialise les caractères spéciaux (‘, ‘', \)

ord($char) : retourne la valeur ASCII du caractère $char

Houcem Hedhly & Mohamed Ouali

17

Affichage

XII

Affichage

Les fonctions d'affichage :

echo() : écriture dans le navigateur

print() : écriture dans le navigateur

printf([$format, $arg1, $arg2]) : écriture formatée comme en C, la chaîne de caractère est constante et contient le format d'affichage des variables passées en argument

18

Houcem Hedhly & Mohamed Ouali