• Aucun résultat trouvé

[PDF] Support de formation du language PHP pour débutant | Formation informatique

N/A
N/A
Protected

Academic year: 2021

Partager "[PDF] Support de formation du language PHP pour débutant | Formation informatique"

Copied!
23
0
0

Texte intégral

(1)

Le langage PHP

Le langage PHP

Claudine Chaouiya

chaouiya@esil.univ-mrs.fr

http://www.esil.univ-mrs.fr/~chaouiya

¸

Introduction

¸

Elements du langage

l Syntaxe de base l Types de données l Structures de contrôle l Fonctions l Bibliothèques ¸

Formulaires

(2)

Introduction - 1

Introduction - 1

1994 Rasmus Lerdorf voulait garder la trace de ceux qui venaient consulter son CV, 1995, PHP/FI Version 2, puis PHP3 et PHP4

en 2001 plus de 5 millions de sites utilisent PHP PHP3 distribué sous licence GNU GPL

langage interprété conçu pour faciliter l'écriture de pages dynamiques. langage de script intégré : compilé comme module du serveur HTTP

– temps de réponse plus rapides pour les serveurs très sollicités

– simplicité pour l'utilisateur qui voit les instructions comme des extensions de HTML (il n'est plus nécessaire de maintenir séparés documents Web et scripts CGI)

– le serveur HTTP reconnait un fichier intégrant du code PHP : il le parcourt avant de l'expédier au client :

chaque instruction PHP est transmise à l'interpréteur

l'interpréteur exécute l'instruction, sorties transmises au serveur le serveur redirige ces sorties vers le client.

(3)

Introduction - 2

Introduction - 2

* Gestion et utilisation de bases de données, comme MySQL.

* Utilisation de données saisies par les visiteurs (annuaires, forums, commandes, etc)

* Assemblage de pages ou de fichiers même en provenance d'autres ordinateurs.

* Adaptation du contenu aux visiteurs (Cookie, site d'origine, heure, logiciel ou ordinateur utilisé, etc).

* Statistiques spécialisées (avec des renseignements précis: noms, produits, recherches, etc).

* Envoi automatique d'E-Mail (confirmation de formulaire, liste de diffusion, etc).

* E-commerce: Caddie, gestion des articles, des commandes et des clients. * Réalisation de données dans tous les formats d'Internet (HTML, Texte, WAP, Gif, etc).

* Exécution d'autres programmes (PHP, CGI, Perl, etc)

* Interaction avec d'autres langages de script (JavaScript, WMLScript, etc) * Utilisation de fonctions de calcul et de manipulation de textes ou

d'images.

(4)

Introduction - 3

Introduction - 3

Pages Web dynamiques :

¸

Données dynamiques (date, compteur, identification du

client...)

¸

Formulaires HTML

¸

Méthodes :

ß scripts exécutés par le client : javascript

ß SSI (Server Side Include), PHP

(5)

Introduction - 4

Introduction - 4

<html>

<head> <title>Test PHP</title> </head> <body>

<?php $date = date("d-m-Y");

echo "Bonjour tout le monde<p>"; echo "nous sommes le $date <br>"; ?>

</body> </html>

(6)

El

El

é

é

ments du langage - syntaxe

ments du langage - syntaxe

¸

Mélange de C et de Perl

¸

Identificateurs sensibles à la casse, sauf pour les

fonctions

¸

Instructions terminées par un ';'

¸

Commentaires /* ... */ // .... # ...

¸

Noms de variables commencent par un '$', suivi

d'une lettre ou un souligné '_'.

¸

Pas de limite de taille.

$i $compteur $_tmp ¸

Pas de déclaration explicite, pas de typage

¸

Types de données : scalaires (entiers, décimaux,

chaînes de caractères), composites (tableaux, objets)

(7)

Types de donn

Types de donn

é

é

es

es

l Entiers (long en C) : iint $decimal = 16 $hex =0x10 $octal=020 l Booléens : boolean (true / false )

l Decimaux (double en C) : double, float $var = 0.012 $var=12.0E-3 l Chaînes: string (guillemets doubles pour la substitution de variables

et le traitement de séquences d'échappement)

$a='jour' $b="Bon\t$a\n" $c='Bon\t$a\n'

l Forcer le type d'une variable :

fonction settype : $a = 3.1415 $rslt=settype($a,"int") $a vaut 3 et $rslt vaut 1

"cast" (int),(real),(string)(array), (object) :! $a = (int) "123abc"

et les fonctions gettype(), is_long(), is_string(), is_int()...

$foo = "0"; // $foo string (ASCII 48) $foo ++; // $foo string "1"

$foo+=1; // $foo integer (2) $foo=5 + "10 soleils"; // $foo integer (15)

(8)

Types de donn

Types de donn

é

é

es - Tableaux

es - Tableaux

l il est important de bien les maitriser

l deux types de tableaux, indicés (comme en C) et associatifs l $tab[0]="p"; $tab[1]="h";tab[2]="p"

$tab = array("p","h","p"); $tab[]="3"; ¤ $tab[3]="3";

l $pomme = array( 'forme'=> 'rond' , 'gout' => 'sucre', 'couleur'

=> 'rouge',4); // clé de 4 sera 0

$a['forme'] = 'rond';... $a['nom'] ='pomme'; $a[ ]= 4; $pomme['couleur']='verte';

l $b[] = 'a'; $b[] = 'b'; $b[] = 'c'; //array( 0 => 'a' , 1 => 'b' , 2 => 'c' )

(9)

Types de donn

Types de donn

é

é

es - Tableaux

es - Tableaux

l le parcours de tableau :

$a=array(1,2,3,4);

for ($i=0;$i<4;$i++) echo "$a[$i] ";

$tableau=array("a"=>"un","b"=>"deux","c"=>"trois"); while(list($clef,$valeur)=each($tableau)){

echo "$clef est $valeur \n"; }

l les tableaux multidimension :

$a[1] = $f; # tableau à une dimension $a["foo"] = $f;

$a[1] [0] = $f; # tableau à deux dimensions

$a["foo"] [2] = $f; # mélanger indices associatifs et numériques $a[3]["bar"] = $f;

$a["foo"] [4] ["bar"] [0] = $f; # tableau à quatre dimensions

(10)

Op

Op

é

é

rateurs

rateurs

l arithmétiques : + - * / %

l incrément/décrément : ++$a

incrémente $a de 1, puis retourne $a. $a++ retourne $a, puis l'incrémente de 1.

--$a décrémente $a de 1, puis retourne $a.

$a-- retourne $a, puis décrémente $a de 1

.

l concaténation de chaînes : .

l logiques : ! && || AND XOR OR

MM $x = true;! $y = false; $z = false;

$x || $y AND $z false

( $x || ($y AND $z)) true

$x OR $y AND $z true

l de comparaison : < <= > >= == !=

(11)

Structures de contr

Structures de contr

ô

ô

le

le

l conditionnelles : if ( cond ) instr

if ( cond ) instr1 else instr2

if ( cond ) instr1 elseif instr2 else instr3

switch (comme en C)

( cond ) : instr1 ? instr2

l de boucles : while ( expr ) instr

do instr while( expr )

(12)

Les fonctions utilisateurs

Les fonctions utilisateurs

l

PHP 3, les fonctions doivent être définies avant qu'elles ne

soient utilisées, ni un nombre variable d'arguments ( ≠PHP4).

l

PHP ne supporte pas la surcharge ou la redéfinition de

fonctions déjà déclarées.

l

PHP supporte le passage d'arguments par valeur (méthode par

défaut), par référence.

l

valeur de retour, souvent un tableau (

return

)

function switch_faux($x,$y){ $z=$x; $x=$y; $y=$z; } function switch_vrai(&$x,&$y){ $z=$x; $x=$y; $y=$z; } $a=3; $b=5;

echo "avant switch_faux $a $b \n"; switch_faux($a,$b);

echo "apres switch_faux $a $b \n"; switch_vrai($a,$b);

(13)

Les fonctions utilisateurs

Les fonctions utilisateurs

l Les valeurs de retour : l'instruction de retour est optionnelle. Tous les

types de variables peuvent être renvoyés, tableaux et objets compris.

function carre ($num) { return $num * $num; } echo carre (4); // affiche '16'.

l pour renvoyer plusieurs valeurs, renvoyer un tableau.

function petit_nombre() { return array (0, 1, 2); } $a= petit_nombre(); echo "$a[0] - $a[1] - $a[2]";

l concept de fonctions variables :si le nom d'une variable est suivi de

parenthèses, PHP recherchera une fonction de même nom, et essaiera de l'exécuter. M

function foo() { ... } function bar( $arg) { ... }

$func = 'foo'; $func();

(14)

Port

Port

é

é

e des variables

e des variables

l globales : définies à l'extérieur d'une fonction. Pour y accéder dans

une fonction utiliser global ou $GLOBALS tableau associatif des variables globales

l locales : définies à l'intérieur de la fonction et les paramètres

l statiques : variables locales conservant leur valeur entre les appels de

la fonction

function bidon1(){ function bidon1(){

global $x; $GLOBALS["x"]="bonjour";

$x="bonjour"; }

}

$x="adieu"; echo $x;

function cpt(){

static $i=0; echo "$i"; $i=$i+1;

}

(15)

Variables dynamiques

Variables dynamiques

l noms de variables qui sont variables. C'est-à-dire un nom de variable

qui est affecté et utilisé dynamiquement. variable classique $a = "bonjour";

variable dynamique prend la valeur d'une variable et l'utilise comme nom d'une autre variable :$$a = "tout le monde";

Æ2 variables définies et stockées dans l'arbre des symboles PHP: $a (valeur "bonjour") et $bonjour (valeur "toute le monde. Alors,

echo "$a ${$a}"; !!!!!!!!!!!!produira le même affichage que echo "$a $bonjour";

l utiliser les variables dynamiques avec les tableaux,

$$a[1] est ambigu

variable qui a pour nom $a[1] Æ ${$a[1]} ou l'index [1] de la variable $$a Æ ${$a}[1]

(16)

Biblioth

Biblioth

è

è

que de fonctions

que de fonctions

chaines de caractères

tableaux

mathématiques

date / heure

répertoires et fichiers

HTTP

manipulation de variables

bases de données

et bien d'autres ...

(17)

Fonctions : manipulation de chaines

Fonctions : manipulation de chaines

chop -- Enlève les espaces de fin de chaîne.

chr -- Retourne un caractère.

echo -- Affiche une ou plusieurs chaînes.

explode -- Scinde une chaîne en morceaux, grâce à un délimiteur.

implode -- Met les elmts tableau dans 1 chaîne, avec 1 chaîne de jointure.

ord -- Retourne la valeur ASCII du caractère.

parse_str -- Analyse 1 chaîne, et en déduit des variables et leur valeur.

print -- Affiche 1 chaîne. printf -- Affiche une chaîne formatée.

str_pad -- Complète 1 chaîne avec 1 autre str_repeat-- Répète une chaîne.

str_replace -- Remplace toutes les occurrences d'une chaîne par une autre.

strip_tags -- Enlève les balises HTML et PHP.

strlen -- Retourne la longueur

strnatcmp -- Compare des chaînes par ordre "naturel"

strpos -- Recherche la 1ère occurrence d'un caractère dans une chaîne.

strrev-- Inverse l'ordre des caractères d'une chaîne.

strtolower-- Met tous les caractères en minuscules.

(18)

Fonctions : tableaux

Fonctions : tableaux

array_fill -- Remplit un tableau avec une même valeur

array_flip -- Remplace les clés par les valeurs, et les valeurs par les clés

array_intersect -- Calcule l'intersection de tableaux

array_merge -- Rassemble plusieurs tableaux

array_push-- Empile un ou plusieurs éléments à la fin d'un tableau

array_search-- Recherche dans un tableau la clé associée à une valeur

array_sum-- somme des valeurs du tableau

array -- Crée un tableau asort-- Trie un tableau en ordre

each-- Retourne chaque paire clé/valeur d'un tableau

end-- Positionne le pointeur de tableau en fin de tableau

ksort-- Trie un tableau suivant les clés

list-- Transforme une liste de variables en tableau

next -- Avance le pointeur interne d'un tableau pos -- elt courant

prev -- Recule le pointeur courant reset -- Remet le pointeur au début

rsort-- Trie en ordre inverse shuffle -- Mélange les elts d'un tableau

(19)

Fonctions math

Fonctions math

é

é

matiques

matiques

M_PI 3.14159265358979323846 Pi

M_E 2.7182818284590452354 e

M_LOG 2E1.4426950408889634074 log_2 e

Abs -- Acos -- Asin -- Atan -- Cos -- Sin -- Tan

base_convert-- Convertit un nombre entre des bases arbitraires.

BinDec -- Convertit de binaire en décimal

Ceil - - Floor -- round Arrondits

deg2rad -- Convertit un nombre de degrés en radians

Exp-- exponentielle

Log10 -- logarithme en base 10. Log -- Logarithme naturel (népérien)

max -- min -- pow -- rand --Sqrt -- Racine carrée.

rand -- génère une valeur aléatoire

(20)

Fonctions date / heure

Fonctions date / heure

checkdate

-- Valide une date/heure.

date

-- Formate une date/heure locale

getdate

-- Retourne la date/heure

gettimeofday

-- Retourne l'heure actuelle

gmtdate

-- Formate une date/heure GMT/CUT.

localtime

-- Lit l'heure locale

(21)

Fonctions syst

Fonctions syst

è

è

me de fichiers

me de fichiers

chgrp -- chmod -- chown --. copy-- Copie un fichier. "

disk_total_space -- Retourne la taille d'un dossier

fclose -- Ferme un fichier. feof -- Teste la fin du fichier.

fflush -- Envoi tout le contenu généré dans un fichier

fgetc -- Renvoie le caractère que pointe le pointeur du fichier.

gets-- Renvoie la ligne courante où se trouve le pointeur du fichier.

fgetss -- Renvoie la ligne courante où se trouve le pointeur du fichier et

élimine les balises HTML

file_exists -- Vérifie si un fichier existe.

file -- Lit le fichier et renvoie le résultat dans un tableau.

fileatime-- date à laquelle le fichier a été accédé pour la dernière fois.

fileowner -- fileperms --filesize -- filetype

fputs -- Ecrit dans un fichier.

is_dir is_executable is_file is_readable is_writable mkdir

--rename -- rmdir.

(22)

Fonctions manipulation de variables

Fonctions manipulation de variables

doubleval -- floatval -- intval

empty -- Détermine si une variable est affectée.

get_defined_vars -- Liste toutes les variables définies gettype -- Retourne le type de la variable.

is_array -- Détermine si une variable est un tableau.

is_bool is_double is_float is_int is_integer is_long is_numeric is_real is_string isset --settype -- Affecte un type à une variable.

(23)

Int

Int

é

é

gration dans une page HTML

gration dans une page HTML

" Fichiers .phtml, .php, .php3, .phps (syntaxe color_e) " Balises :

<? echo "Bonjour ! \n"; ?>

<?php echo "Bonjour ! \n"; ?>

<script language="php"> echo "Bonjour ! \n"; </script> <html> <head> <title>Exemple</title> </head> <body> <?php

echo "Bonjour, je suis un script PHP!"; ?>

</body> </html>

Références

Documents relatifs

The verification process requires a proof of ownership by the current prover and also a check from the verifier that the location proof contains LPSs from different witnesses.. If

L’archive ouverte pluridisciplinaire HAL, est destinée au dépôt et à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des

Pourtant, le primat de la joie simple mais tonique qui se dégage de cette fête n’obère en rien ni son côté solennel ni son biblo- centrisme, puisqu’au cœur du programme, comme

Une seconde version est donc proposée prenant mieux en compte ces dimensions, posant en même temps les limites de l’espace de l’action didactique, obligeant par là même à sortir

Outre les coutelas et les poignards miniaturisés, d'autres objets de dimensions réduites se rencontrent parmi le mobilier des sépultures gallo-romaines du Limousin

O Diagnóstico do estado nutricional do cafeeiro foi realizado pelo Sistema Integrado de Diagnose e Recomendação (DRIS), através das normas de referência geradas para lavouras

Quand le projet a été repris à la Section arabe de l’Institut de Recherche et d’Histoire des Textes IRHT, avec l’accord de l’Italie, dans les années 1970, la

médullaire (B) ( D’après http://vetsci.co.uk/wp-content/uploads/2011/06/Joint.png et http://www.gallimard- jeunesse.fr-image_sci_body017.jpg ) Os trabéculaire Cartilages hyalins