• Aucun résultat trouvé

04/02/20101

N/A
N/A
Protected

Academic year: 2022

Partager "04/02/20101"

Copied!
4
0
0

Texte intégral

(1)

04/02/2010

1

03/02/10 Base de données _ PHP GMT/FP/SC 1

Qu'est-ce que PHP?

Langage interprété exécuté du côté serveur

Principaux atouts :

- disponibilité du code source (distribué sous licence GNU GPL) - simplicité d'écriture de scripts

- possibilité d'inclure le script PHP au sein d'une page html - simplicité d'interfaçage avec des bases de données - intégration au sein de nombreux serveurs web - supporté par de nombreux FAI

03/02/10 Base de données _ PHP GMT/FP/SC 2

Origines de PHP

Mis au point en 1994 par Rasmus Lerdorf.

Première version : Personal Sommaire Page Tools, puis Personal Home Page v1.0

Amélioration du langage en intégrant des structures avancées telles que boucles, structures conditionnelles, packages permettant d'interpréter les formulaires (FI, Form Interpreter) ainsi que le support de mySQL.

A partir de 1997, Zeev Suraski et Andi Gurmans rejoignirent Rasmus pour former une équipe de programmeurs afin de mettre au point PHP 3.

La version 3.0 de PHP fut disponible en juin 1998 et la version 4.0 en Mai 2000, version de la maturité, qui a rencontré un grand succès, La version actuelle, PHP 5, apporte la gestion objet, performances...

La dernière version est le 5.3.1 (19 novembre 2009) et la version 6 devrait sortir bientôt.

03/02/10 Base de données _ PHP GMT/FP/SC 3

Principe de fonctionnement

Source Wikipédia

Le client, à droite, demande une page (via le réseau, ici l'Internet) le serveur charge la page, la transmet à l'interpréteur php.

L'interpreteur exécute le code.. et le résultat produit (on imagine qu'il s'agit souvent de html, mais ce n'est pas obligé) est envoyé au client.

03/02/10 Base de données _ PHP GMT/FP/SC 4

L'interprétation du code par le serveur

Un script PHP est un fichier texte, stocké sur le serveur.

Ce fichier doit avoir l'extension.php pour pouvoir être interprété par le serveur ! Seul le résultat de l'exécution est envoyé au client (qui ne voit donc jamais le source)

Quand un navigateur (client) accède à une page dynamique réalisé en php :

- Le serveur web reconnaît qu'il s'agit d'un fichier php

- Il lit le fichier php

- Dès que le serveur rencontre une balise indiquant du code php, il "passe" en mode php :

- Lorsque le serveur rencontre une instruction, il la transmet à l'interpréteur.

- L'interpréteur exécute l'instruction puis envoie les sorties éventuelles au serveur web

A la fin du script, le serveur transmet le résultat au client (le navigateur)

03/02/10 Base de données _ PHP GMT/FP/SC 5

Un script PHP est interprété par le serveur, les utilisateurs ne voient pas le source ! Le code php stocké sur le serveur n'est donc jamais visible directement par le client puisque dès qu'il en demande l'accès, le serveur l'interprète ! (

attention, cependant, si le serveur ne sait plus parler php, il fournit le code au client

)

L'interprétation du code par le serveur

03/02/10 Base de données _ PHP GMT/FP/SC 6

Implantation au sein du code html

Un script PHP doit :

- comporter l'extension .php ( c'est un signal pour le serveur web )

- être imbriqué entre les délimiteurs <?php et ?>

(ou <? ?> )

<?php instruction;

instruction;

...

?>

(2)

04/02/2010

2

03/02/10 Base de données _ PHP GMT/FP/SC 7

Un exemple de script simple

< html>

<head>

<title>Exemple</title>

</head>

<body>

<? echo "Hello world\n"; ?>

</body>

</html>

echo permet d'afficher sur le navigateur la chaîne délimitée par les guillemets.

03/02/10 Base de données _ PHP GMT/FP/SC 8

L'interprétation du code

Un code PHP est un ensemble d'instructions se terminant chacune par un point-virgule.

Lorsque le code est interprété, les espaces, retours chariot et tabulation ne sont pas pris en compte par le serveur.

Leur utilisation rend le code plus lisible.

03/02/10 Base de données _ PHP GMT/FP/SC 9

Implantation du code php au sein du code html

Le code php peut être implanté au sein du code html.

Écrire uniquementdu code php là où il est nécessaire rend la programmation plus simple

Il est plus simple d'écrire du code html que des fonctions echo ou print, dans lesquelles les caractères spéciaux doivent être précédés d'un antislash.

Exemple : pages dynamiques dont l'en-tête est toujours le même

Le code php peut ne commencer qu'à partir de la balise <body>, au moment où la page peut s'afficher différemment selon une variable par exemple.

Il est possible d'écrire plusieurs portions de script en php, séparées par du code html statique car les variables/fonctions déclarées dans une portion de script seront accessibles dans les portions de scripts inférieures.

03/02/10 Base de données _ PHP GMT/FP/SC 10

Structures d'un script PHP

03/02/10 Base de données _ PHP GMT/FP/SC 11

Typographie

Le langage PHP est sensible à la casse

Cette règle ne s'applique pas aux fonctions, les spécifications du langage PHP précisent que la fonction print peut être appelée print(), Print() ou PRINT(). Attention, susceptible de changer en PHP6...

Toute instruction se termine par un point-virgule (héritage du langage C).

03/02/10 Base de données _ PHP GMT/FP/SC 12

Variables en PHP

trois types :

scalaires

entiers, réels, chaînes de caractères

tableaux

tableaux associatifs (table de hachage)

Le nom d’une variable doit être précédé du caractère dollar ($).

Les variables en PHP ne sont pas déclarées, et non typées.

PHP3 : assignation par valeurs

PHP4 : assignation par valeurs ou par références

(3)

04/02/2010

3

03/02/10 Base de données _ PHP GMT/FP/SC 13

Guillemets doubles et simples

Les signes permettant de délimiter une chaîne de caractère en PHP sont ' ou " . PHP examine le contenu d’une chaîne entre " mais pas celui d’une chaîne qui est entre ' qu'il affiche directement (héritage du shell Unix).

Les chaînes délimitées par ' sont donc affichées plus rapidement.

Lorsqu'une chaîne est spécifiée avec des guillemets doubles, les variables qu'elle contient sont remplacées par leur valeur (très intéressant).

$a= "rouge";

echo "la fleur est $a"; affiche

la fleur est rouge

echo ‘la fleur est $a’; affiche

la fleur est $a

03/02/10 Base de données _ PHP GMT/FP/SC 14

Concaténation de chaînes

Le pointest utilisé pour concaténer des chaînes, variables, etc. Pour que php sache que le nom de la variable s'arrête à un endroit précis, nous utiliserons le point.

<?

$date = date("H:i");

print("Il est $date "."gmt.");

?>

affiche Il est 19:05 gmt.

Pour éviter que PHP pense que la variable porte le nom $dategmt, il faut refermer la double quote, mettre un point puis la rouvrir pour mettre le restant du texte (gmt).

Le second point placé entre les doubles quotes sera interprété comme du texte simple et non comme une demande de concaténation.

Ce système de concaténation de chaines nous permettra notamment de fabriquer des requetes SQL comme un assemblage d'élements (la partie SELECT, puis la partie FROM, et la partie WHERE).

Attention : ne pas utiliser + comme opérateur de concaténation.

$res = 1 + "3 vélos" donne 4 pour $res POURQUOI ????

03/02/10 Base de données _ PHP GMT/FP/SC 15

Quote double et simple

<?

$nom = "Martin";

echo "Mon nom est $nom"; affiche Mon nom est Martin

?>

<?

$nom = "Martin";

// affichage avec des simples quotes affiche Mon nom est $nom echo 'Mon nom est $nom';

?>

<?

$nom = "Martin";

// affichage avec des simples quotes affiche Mon nom est Martin echo 'Mon nom est '.$nom;

?>

03/02/10 Base de données _ PHP GMT/FP/SC 16

Définition de constantes

Une constante a une valeur inchangeable lors de l'exécution d'un programme.

Les constantes sont définies grâce à la fonction define().

define("NOM_DE_LA_CONSTANTE",Valeur);

Le nom d'une constante définie à l'aide de la fonction define()

ne doit pas commencer par le caractère $ (de cette façon aucune affectation n'est possible). L'habitude est d'écrire les constantes en majuscules (héritage du C).

03/02/10 Base de données _ PHP GMT/FP/SC 17

Trois fonctions standards

php fournit 3 fonctions permettant d'envoyer du texte au navigateur.

Ces fonctions ont la particularité de pouvoir insérer dans les données envoyées des valeurs variables pouvant être fonction d'une valeur récupérée.

C'est ce qui rend plus facile la création de pages dynamiques.

echo (héritage du shell) print (héritage du Perl) printf (héritage du C)

03/02/10 Base de données _ PHP GMT/FP/SC 18

La fonction echo

echo

permet d'envoyer sur la sortie la chaîne de caractères qui la suit (donc au navigateur si le script est lancé par une serveur web).

echo Expression;

L'expression peut être une chaîne de caractèresou une expressionque l'interpréteur évalue

echo "Chaine de caracteres";

echo (1+2)*87;

$ a un rôle particuliercar l'interpréteur le comprend comme une variable, l'interpréteur récupère le nom de la variable qui suit le caractère $ et le remplace par sa valeur.

(héritage du shell)

<?

// Récupération de la date et stockage dans une variable

$MaDate = date("Y");

echo "Nous sommes en $MaDate\n";

?>

(4)

04/02/2010

4

03/02/10 Base de données _ PHP GMT/FP/SC 19

La fonction print

La fonction print est similaire à la fonction echo à la différence près que l'expression à afficher est entre parenthèses.

print(expression);

L'expression peut, comme pour la fonction echo être une chaîne de caractères ou une expression que l'interpréteur évalue:

print("Chaine de caracteres");

print ((1+2)*87);

03/02/10 Base de données _ PHP GMT/FP/SC 20

La fonction printf

printf(chaîne formatée);

Les codes de formatage des types de données sont les suivants:

Code Type de format

%b Entier en notation binaire

%c Caractère codé par son code ASCII

%d Entier en notation décimale

%e Type double (nombre à virgule) au format scientifique (1.76e+3)

%f Type double (nombre à virgule)

%o Entier en notation octale

%s Chaîne de caractères

%x Entier en notation hexadécimale (lettres en minuscules)

%X Entier en notation hexadécimale (lettres en majuscules)

%% Caractère %

$Pi = 3.1415927; $R = 24.546; $Perimetre = 2 * $Pi * $R;

printf ("Le périmètre du cercle est %d\n",$Perimetre);

03/02/10 Base de données _ PHP GMT/FP/SC 21

La fonction date

Le code suivant

<?

$date = date("d-m-Y");

$heure = date("H:i");

print("Nous sommes le $date et il est $heure\n");

?>

affichera :

Nous sommes le 19-02-2008 et il est 15:10

La fonction date() permet d'obtenir l'heure locale du serveur, mais l'heure locale est fonction de la situation géographique du serveur : un serveur situé au Canada vous donnera l'heure du Canada ! Dans le code ci-dessus la variable $dateest générée en lui donnant la valeur de ce que retourne la fonction date("d-m-Y")en l'occurrence :19-02-2008.

Les paramètres contenus entre les parenthèses d-m-Ypeuvent être placés dans l'ordre désiré, ainsi la date au format US sera écrite date("Y-m-d") : 2008-02-19.

03/02/10 Base de données _ PHP GMT/FP/SC 22

Les paramètres de la fonction date()

y- Année sur 2 chiffres (1968) Y- Année sur 4 chiffres (68)

L- Booléen pour savoir si l'année est bissextile ("1") ou pas ("0") m- Mois sur 2 chiffres, de "01" à "12"

n- Mois sur 2 chiffres, sans les zéros initiaux, de "1" à "12"

F- Mois, textuel, version longue; en anglais

M- Mois, textuel, version courte sur 3 lettres en anglais : "Feb" (pour February) d- Jour du mois, sur deux chiffres : "01" à "31"

j- Jour du mois sans les zéros initiaux : "1" à "31"

l- ('L' minuscule) - Jour de la semaine, textuel, version longue; en anglais : "Friday"

D- Jour de la semaine, en trois lettres (et en anglais) : "Fri" (pour Friday) a- "am" (matin) ou "pm" (après-midi)

A- "AM" (matin) ou "PM" (après-midi)

g- Heure, au format 12h sans les zéros initiaux, de "1" à "12"

G- Heure, au format 24h sans les zéros initiaux, de "0" à "23"

h- Heure, au format 12h, de "01" à "12"

H- Heure, au format 24h, de "00" à "23"

i- Minutes; de "00" à "59"

s- Secondes; de "00" à "59"

S- Suffixe ordinal d'un nom

03/02/10

Les priorités

ordre décroissant

des priorités de tous les opérateurs

parenthèses () []

opérateurs unaires ++ -- !

mult,div,modulo * / %

addition,soustraction + -

opérateurs relationnels < > <= >=

Égalité == !=

ET binaire &

OU exclusif binaire(XOR) ^

OU binaire |

ET logique &&

OU logique ||

Affectations diverses = += -= *= /= %= ^=

AND XOR

Si plusieurs priorités se trouvent dans la même expression et sont de même niveau, ce sera l ’opérateur le plus à gauche qui sera effectué en premier.

Grâce aux parenthèses qui sont toujours

prioritaires, on peut définir l’ordre

de calcul des opérateurs. Les parenthèses rendent un programme plus clair, plus

lisible

.

Références

Documents relatifs

Une façon simple d’y arriver est de créer un fond d’écran avec les bornes pour une résolution de 800x600 pixels et de 1024x768 pixels. IFT1147 -

Cas particulier de l’attaque précédente : insertion de code JavaScript dans une page HTML, qui sera réaffiché par d’autres utilisateurs ; le code JavaS- cript « vole »

Cas particulier de l'attaque précédente : insertion de code JavaScript dans une page HTML, qui sera réaché par d'autres utilisateurs ; le code Java- Script vole les informations

• Terminer la page HTML sur l’histoire du WEB. • Envoyer la

[r]

Leur utilisation n’est pas recommandée car ils sont moins bien reconnus par Internet Explorer 6 et 7 ; leur affichage y est néanmoins possible en utilisant une police Unicode

a - En utilisant le principe de la s´ eparation de code reproduire la pyramide suivante pour un nombre n d’´ etages :. b - En utilisant le principe de la s´ eparation de code

a - En utilisant le principe de la séparation de code reproduire la pyramide suivante pour un nombre n d'étages :. b - En utilisant le principe de la séparation de code reproduire