aide-m´emoire php 5

29
Aide-m´ emoire PHP 5 v 1.8 © [email protected] 11 octobre 2013

Upload: others

Post on 21-Jan-2022

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Aide-m´emoire PHP 5

Aide-memoire PHP 5

v 1.8 © [email protected]

11 octobre 2013

Page 2: Aide-m´emoire PHP 5

Table des matieres

1 Introduction 3

2 Syntaxe 4

2.1 XHTML et PHP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2.1.1 Premier exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2.1.2 Les delimiteurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2.2 Commentaires, types de donnees, variables et constantes . . . . . . . . . . . . . . . 5

2.2.1 Les commentaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2.2.2 Les types de donnees . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2.2.3 Les variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2.2.4 Les constantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2.3 Les operateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.3.1 Operateurs arithmetiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.3.2 Operateurs de comparaison . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.3.3 Operateurs logiques relationnels . . . . . . . . . . . . . . . . . . . . . . . . 7

2.3.4 Operateurs binaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.3.5 Operateurs specifiques a PHP . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.3.6 Operateurs d’affectation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.3.7 Autres operateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.3.8 La priorite des operateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.4 Structures de controle : tests et boucles . . . . . . . . . . . . . . . . . . . . . . . . 8

2.4.1 if ... elseif ... else ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.4.2 for ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2.4.3 do ... while ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2.4.4 while ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2.4.5 switch ... case ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2.4.6 foreach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2.4.7 break et exit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

1

Page 3: Aide-m´emoire PHP 5

TABLE DES MATIERES 2

2.5 Fonctions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.5.1 Declaration d’une fonction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.5.2 valeur de retour . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.5.3 passage d’argument par valeur . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.5.4 passage d’argument par reference . . . . . . . . . . . . . . . . . . . . . . . . 12

2.5.5 cas particuliers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.6 Tableaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.6.1 Declaration et initialisation d’un tableau . . . . . . . . . . . . . . . . . . . . 12

2.6.2 Les manipulations de tableaux . . . . . . . . . . . . . . . . . . . . . . . . . 13

3 Quelques fonctions utiles 15

3.1 Les fonctions d’affichage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

3.2 Les manipulations de chaınes de caracteres . . . . . . . . . . . . . . . . . . . . . . 16

3.2.1 Les manipulations usuelles . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

3.2.2 Les manipulations liees aux echanges (bdd, mail, formulaires, ...) . . . . . . 16

3.2.3 <br /> et ’\n’ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

3.2.4 Les fonctions particulieres et de conversion . . . . . . . . . . . . . . . . . . 17

3.3 Fichiers et repertoires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

3.3.1 Les fonctions lies aux fichiers . . . . . . . . . . . . . . . . . . . . . . . . . . 17

3.3.2 Les fonctions liees aux repertoires (dossiers) . . . . . . . . . . . . . . . . . . 19

3.4 Les manipulations de dates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3.4.1 date et heure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3.4.2 calendriers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3.5 Fonctions mathematiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

3.5.1 fonctions usuelles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

3.5.2 Les nombres aleatoires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

3.5.3 les tres grands nombres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

4 PHP et les formulaires XHTML 22

4.1 Rappel sur les formulaires XHTML . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

4.1.1 Structure du formulaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

4.1.2 les differentes entrees d’un formulaire . . . . . . . . . . . . . . . . . . . . . 22

4.2 La recuperation des informations saisies dans le formulaire . . . . . . . . . . . . . . 23

4.3 Un exemple complet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

5 Complements 25

5.1 Construction multifichiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

5.1.1 require . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

5.1.2 include . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

5.2 Quelques variables d’environnement . . . . . . . . . . . . . . . . . . . . . . . . . . 25

Page 4: Aide-m´emoire PHP 5

Chapitre 1

Introduction

La premiere version du langage PHP a ete concue par Rasmus Lerdorf en 1994. l’acronyme PHPsignifiait a l’origine“Personal Home Page” et designe actuellement“PHP Hypertext Preprocessor”.PHP3 a ete acheve en 1999, les elements presentes dans ce document traitent des aspects generauxcommuns a PHP4 et PHP5 1.

PHP est un langage de script qui permet de realiser des sites Web dynamique : les scripts PHPsont interpretes cote serveur et permettent la generation “a la volee” des pages HTML envoyeesau(x) client(s). Le langage PHP est en general associe au serveur Web Apache 2 sous la forme d’unmodule ou d’un executable independant. PHP est tres souvent utilise conjointement au SGBDRMySQL mais ces deux elements sont autonomes et peuvent etre employes independamment. Onparle alors d’une architecture “LAMP” pour : “Linux Apache MySQL PHP”.

Les alternatives a PHP sont :– les scripts CGI (Common Gateway Interface) generalement en perl ou en C.– ASP (Active Server Page) sous IIS (Internet Information Server) de Microsoft (on peut egale-ment trouver ASP sous Apache).

– JSP (Java Server Page) & JSF (Java Server Faces).– .Net (langage C#, VB, ASP)– ...Avertissement : Dans ce document, nous ne presenterons pas la syntaxe XHTML (ni celle desCSS).

Notation utilisee : les arguments optionnels sont places entre crochets ([ ])

1. Les elements plus specifiques comme la programmation objet en PHP, les connexions aux bases de donnees,etc. sont traites dans le document “Complements PHP 5 et MySQL”.

2. Remarque : il existe un interpreteur PHP sous windows IIS (Internet Information Server)

3

Page 5: Aide-m´emoire PHP 5

Chapitre 2

Syntaxe

2.1 XHTML et PHP

2.1.1 Premier exemple

Le langage PHP permet de generer du code HTML dynamiquement ; cette generation peut etrecomplete (y compris les balises de structure de la page HTML : <html>, <head>, <body> ...) oupartielle : seule la partie dynamique est ecrite en PHP, le reste de la page (partie statique) etanten HTML. Voici un premier exemple d’imbrication d’instruction PHP dans un code HTML.

Important : pour pouvoir etre interprete correctement, le code PHP (ou HTML + PHP) doitetre place dans un fichier d’extension php (ou eventuellement php3, php4 ou php5 en fonction dela configuration du serveur web).

Exemple : fichier hello.php

<html>

<head>

<title> premier exemple PHP </title>

</head>

<body>

<h1> hello world en PHP </h1>

<?php

echo "<p>Hello!</p>";

?>

</body>

</html>

2.1.2 Les delimiteurs

L’imbrication d’instructions PHP dans le code HTML peut se faire de differentes facons :

a) en respectant la norme XML (forme recommandee) :

<?php

phpinfo();

?>

4

Page 6: Aide-m´emoire PHP 5

CHAPITRE 2. SYNTAXE 5

Remarque : phpinfo() est une fonction PHP renvoyant l’ensemble des valeurs des variables d’en-vironnement PHP configurees sur le serveur.

b) en utilisant la forme simplifiee (il est toutefois possible que cette syntaxe ne soit pas supporteepar le serveur) :

<?

phpinfo();

?>

2.2 Commentaires, types de donnees, variables et constantes

2.2.1 Les commentaires

Les delimiteurs de commentaires sont les memes qu’en C :

// pour un commentaire de fin de ligne (ou sur une seule ligne).

/*

pour un bloc de commentaires

sur plusieurs lignes

*/

2.2.2 Les types de donnees

PHP est un langage implicitement type. On ne declare pas le type des variables explicitement :c’est PHP qui determine le type d’une variable par son contexte, c’est a dire par la valeur qui luiest attribuee.

Il existe neanmoins quelques grandes categories de variables :– le tye booleen (boolean), pouvant prendre les valeurs true (1) ou false (0)– les nombres entiers relatifs (integer) en decimal, octal ou hexadecimal (ex. : 65, 0101, 0x41).– les nombres reels (double) en notation decimal ou scientifique (ex. : 123.456, 1.23456e2)– les chaınes de caracteres (string) entre apostrophes ou entre guillemets (dans ce dernier cas, unevariable placee dans la chaıne de caracteres sera interpretee).

– les tableaux (array), ensemble d’elements de meme type.– les objets 1 (object).Remarque : lorsqu’une variable ne contient aucune valeur, elle “contient” la valeur Null.

Remarque : il est possible de connaıtre dynamiquement le type d’une variable par la fonctiongettype(), il est egalement possible de modifier dynamiquement le type d’une variable par set-type().

2.2.3 Les variables

Remarque : les noms des variables sont sensibles a la casse (minuscules / majuscules).

Les noms des variables en PHP commencent toutes par le caractere $ suivi d’un nombre quelconquede caracteres alphanumeriques (A...Z, a...z, 0...9, ).

La fonction particuliere isset() permet de savoir si une variable a ete definie et renvoie TRUE sila variable existe (FALSE sinon).

1. Les objets sont traites en detail dans le document “Complements PHP 5 et MySQL”.

Page 7: Aide-m´emoire PHP 5

CHAPITRE 2. SYNTAXE 6

Les variables preexistantes ainsi que les variables creees en dehors des fonctions ont une porteeglobale utilisables partout sauf au sein des fonctions (cf. restriction ci-apres), les variables creeesdans une fonction ont une portee locales.

Important : contrairement au langage C, les variables de portee globale ne sont pas accessibledepuis une fonction sauf a utiliser le modificateur global lors de leur redeclaration dans la fonction(on preferera en general realiser un passage de parametre explicite par valeur ou par reference).

Exemple :

<?php

$varGlobale = "hello, world!";

function printVar()

{

global $varGlobale;

/*

- si le modificateur global est absent,

$varGlobale est consideree comme une nouvelle variable lo-

cale et a donc une portee limitee a la fonction...

elle doit alors etre initialisee.

- si la ligne n’apparaıt pas,

$varGlobale n’existe pas...(i.e. : n’est pas accessible de-

puis la fonction).

*/

$varLocale = "How are you ?";

print($varGlobale . $varLocale);

}

?>

De meme qu’en C, une variable locale de modificateur static conservera sa valeur entre les appelssuccessifs de la fonction.

Exemple :

<?php

function nbCall()

{

static $counter = 0;

$counter ++;

}

?>

La verification de la definition prealable d’une variable se fait par :

isset(var)

2.2.4 Les constantes

Bien que PHP soit faiblement type, il reconnaıt neanmoins differentes formes de constantes :

1. Les constantes numeriques entieres (35, -12, 0, 0x3F4B).

2. Les constantes numeriques reelles (12.7, -25.79, -41.5E12).

Page 8: Aide-m´emoire PHP 5

CHAPITRE 2. SYNTAXE 7

3. Les constantes chaınes de caracteres ("l’apprentissage de PHP \n", ’l\’apprentissagede PHP \n’). Remarque : lorsqu’on utilise les guillemets simples, seules les sequences \’ et\\ sont interpolees (traitement litteral sinon), par contre toutes les sequences d’echappementdes chaınes de caracteres delimitees par des guillemets doubles sont interpolees : on peut doncecrire "valeur = $var" (la valeur de la variable apparaıtra a l’emplacement de $var).

4. Les constantes booleennes (TRUE ou true, FALSE ou false) : celles-ci ne sont pas sensiblesa la casse et sont traitees comme en C : faux egal zero et vrai est different de zero.

5. Les constantes definies par le programmeur : define(nom, valeur [, casse]) ; exemple de-

fine("TAUX", 6.55957); l’attribut casse est optionnel et vaut false par defaut : il indiquealors que le nom de la constante predefinie sera sensible a la casse (true sinon).

6. Les constantes predefinies par PHP (ex. : M_PI, PHP_VERSION, PHP_OS, ...).

2.3 Les operateurs

La plupart des operateurs PHP sont communs au langage C, ne sont presentes en detail ici queceux specifiques au langage PHP.

2.3.1 Operateurs arithmetiques

+ (addition), - (soustraction), * (multiplication), / (division), % (modulo)

++ (incrementation), -- (decrementation)

2.3.2 Operateurs de comparaison

< (inferieur strictement), > (superieur strictement), <= (inferieur ou egal), >= (superieur ou egal)

== (egal),!= (different), === (identique i.e. de meme type)

N.B. : ne pas confondre l’operateur de test d’egalite (==) avec l’operateur d’affectation (=).

if ($i=7) ... // syntaxiquement correct MAIS affecte i avec la va-

leur 7...

if ($i==7) ... // compare la valeur de la variable i avec 7

2.3.3 Operateurs logiques relationnels

and ou && (ET), or ou || (OU), xor (OU exclusif), ! (NON)

2.3.4 Operateurs binaires

& (ET bit a bit), | (OU bit a bit), ^ (OU exclusif bit a bit), ~ (complement a 1), >> (decalage adroite), << (decalage a gauche)

Page 9: Aide-m´emoire PHP 5

CHAPITRE 2. SYNTAXE 8

2.3.5 Operateurs specifiques a PHP

. concatenation de chaınes de caracteres

exemple : print("hello" . $var . "<BR>\n");

$ reference une variable

exemple : $var = 3;

-> reference un attribut ou une methode d’une classe

= definit un argument par defaut lors de la declaration d’une fonction

=> assigne une valeur a un index d’un tableau (ou a une clef dans le cas d’un tableau associatif).

@ suppression des messages d’erreur d’une fonction (ex. : $fp = @fopen("/home/file.txt","r");)

2.3.6 Operateurs d’affectation

= (assigne le membre de droite a celui de gauche).

+=, -=, *=, /=, %= (ecritures simplifies pour l’utilisation combinee de l’affectation avec un operateurarithmetique).

&=, |=, ^= (ecritures simplifies pour l’utilisation combinee de l’affectation avec un operateur bi-naire).

.= (ecritures simplifies pour l’utilisation combinee de l’affectation avec l’operateur de concatena-tion).

2.3.7 Autres operateurs

? : (expression conditionnelle ternaire).

& reference l’adresse d’une variable (utilise pour les passages d’arguments par reference a unefonction) :

exemple : fonction(&$var);

2.3.8 La priorite des operateurs

2.4 Structures de controle : tests et boucles

Les instructions de controles sont presque les memes que celle du langage C. Les blocs d’instructionssont delimites par des accolades.

2.4.1 if ... elseif ... else ...

exemple :

Page 10: Aide-m´emoire PHP 5

CHAPITRE 2. SYNTAXE 9

Operateurs Associativite

new aucune() {} [] droite

~ ! ++ -- $ &(ref) @ (cast) droite* / % gauche+ - . gauche<< >> gauche

< > <= >= aucune== != === aucune

& (binaire) gauche^ gauche| gauche&& gauche|| gauche? : gauche

= += -= *= /= &= .= %= &= |= ^= ~= <<= >>= gaucheand gauchexor gaucheor gauche, gauche

Table 2.1 – priorite des operateurs (par ordre de priorite decroissante)

if ( ... ) {

...;

}

elseif ( ... ) {

...;

}

else {

...;

}

Remarque : le elseif et le else sont optionnels : on peut avoir par exemple les combinaisons if

(...) { ...; } seul ou if ( ... ) { ...; } else { ...; } sans elseif

2.4.2 for ...

principe : for (initialisation ; test ; incrementation ) { ... } : initialisation est execute une seule foisavant toutes les boucles, test est verifie avant chaque boucle, incrementation est execute apreschaque boucle (de ce fait une boucle for peut ne jamais etre executee).

exemple :

for ( $i = 0 ; $i < MAX ; $i++ ) {

...;

}

2.4.3 do ... while ...

exemple :

Page 11: Aide-m´emoire PHP 5

CHAPITRE 2. SYNTAXE 10

do {

...;

} while ( ... );

2.4.4 while ...

exemple :

while ( ...) {

...;

}

2.4.5 switch ... case ...

exemple :

switch ($var) {

case "linux" :

...;

break;

case "windows" :

...;

break;

case "mac-os" :

...;

break;

case "solaris" :

...;

break;

default :

...;

break; // ce dernier break est optionnel

}

Remarque : contrairement a beaucoup d’autres langages, PHP permet de comparer implicitementdes chaınes de caracteres.

2.4.6 foreach

L’instruction foreach permet de parcourir les elements d’un tableau associatif.

foreach($tableau as $valeur) ou foreach($tableau as $clef=>$valeur) permet de traiterl’ensemble des elements d’un tableau de type “key / value”. C’est la forme recommandee pourparcourir les tableaux associatifs (cf. 2.6.2 page 14).

2.4.7 break et exit

L’instruction break permet d’interrompre un traitement (une boucle) et de le reprendre juste apresle bloc d’accolade concerne.

L’instruction exit permet de quitter definitivement le code PHP et est donc a reserver aux casd’erreurs majeures.

Page 12: Aide-m´emoire PHP 5

CHAPITRE 2. SYNTAXE 11

2.5 Fonctions

Remarque : Les noms des fonctions sont sensibles a la casse (minuscules / majuscules).

2.5.1 Declaration d’une fonction

la declaration d’une fonction se fait par le mot-clef “function” :

function nom_fonction(arguments) {

instructions;

}

2.5.2 valeur de retour

une fonction peut comme en C retourner une valeur par l’instruction return :

function getValue() {

...;

return ($var);

}

Une fonction peut egalement renvoyer un ensemble de valeurs dans un tableau :

function getValues() {

...;

return array($var1, $var2, $var3);

}

Dans ce cas la recuperation des valeurs de retour s’effectue grace a l’instruction list

list ($v1, $v2, $v3) = getValues();

2.5.3 passage d’argument par valeur

Comme en C, une fonction peut accepter un ou plusieurs parametres passes par copie (par valeur) :

function multi_args($arg1, $arg2) {

...;

}

Remarque : les arguments peuvent comme en C++ avoir une valeur par defaut, ils deviennentalors des arguments optionnels :

function default_arg($arg1, $arg2= "red") {

...;

}

Dans ce cas, l’appel de la fonction peut prendre deux formes :

default_arg(35); // le deuxieme argument vaudra ici "red"

ou un appel complet comme en C :

default_arg(47, "green");

Page 13: Aide-m´emoire PHP 5

CHAPITRE 2. SYNTAXE 12

2.5.4 passage d’argument par reference

Contrairement au passage de parametre par copie, le passage de parametre par reference permet detravailler sur l’original de la variable (donc de la modifier) sans toutefois (comme en C) connaıtreson adresse :

function ref_arg(&$var) {

...;

$var = ...; // ici on modifie l’original (et non une copie)

}

2.5.5 cas particuliers

PHP supporte la recursivite.

PHP permet l’appel dynamique de fonction en donnant a une variable le nom de la fonctionsouhaitee :

function fonc_1($arg1) {

...;

}

function fonc_2($arg2) {

...;

}

$ma_fonction = "fonc_1";

$ma_fonction("hello"); // dans ce cas, c’est la fonc-

tion fonc_1 qui sera appelee

Remarque : l’appel dynamique n’est pas possible avec les fonctions integrees a PHP.

2.6 Tableaux

Il existe en PHP, deux types de tableaux (array) :– les tableaux indices (comme en C) de 0 a N-1– les tableaux associatifs (associative array) dotes de clefs sur le meme principe que les HashMapde Java : ensemble de paires clefs / valeurs (key / value) ou la clef est unique et peut etre unentier ou une chaıne de caracteres.

Remarque : en realite, les tableaux indices ne sont qu’un sous-ensemble des tableaux associatifsou la clef est un indice (valeur numerique comprise entre 0 et N-1).

2.6.1 Declaration et initialisation d’un tableau

En PHP, il est possible (comme en C) de dissocier la declaration de l’initialisation d’un tableau :dans ce cas la declaration est optionnelle :

$tab = array(); // declaration possible mais optionnelle

$tab[0]="informatique";

$tab[1]="langage";

$tab[2]="PHP";

on peut egalement s’appuyer sur l’indexation automatique :

Page 14: Aide-m´emoire PHP 5

CHAPITRE 2. SYNTAXE 13

$tab_auto[]="informatique";

$tab_auto[]="langage";

$tab_auto[]="PHP";

Il est egalement possible de reunir ces deux operation en une seule instruction : ci-dessous, troisexemples differents de declaration et initialisation combinees d’un tableau de chaınes de caracteres :

- Declaration d’un tableau indice (implicitement) :

$tab1_auto = array("informatique", "langage", "PHP");

$tab1[2] designe le troisieme element du tableau (ici : “PHP”).

- Declaration d’un tableau explicitement indice :

$tab2 = array(0=>"informatique", 1=>"langage", 2=>"PHP");

$tab2bis = array(1=>"informatique", 3=>"langage", 7=>"PHP");

$tab2_semi_auto = array(1=>"informatique", "langage", "PHP");

Remarque : dans ce dernier cas ($tab2_semi_auto) "langage" et "PHP" sont aux indices 2 et 3respectivement

- Declaration d’un tableau associatif :

$tab3 = ar-

ray("domaine"=>"informatique", "type"=>"langage", "nom"=>"PHP");

$tab3[”nom”] designe la chaıne “PHP”.

2.6.2 Les manipulations de tableaux

Principe general : un tableau dispose d’un pointeur interne qu’il est possible de deplacer a l’aidede pseudo-fonctions qui permettent de parcourir ce tableau.

array array([mixte vali]*) cree et retourne un tableau en fonction des arguments passes.

integer count(array tab ),integer sizeof(array tab ) renvoie le nombre d’elements d’untableau.

$copie = $tab1 permet de recopier le tableau $tab1 dans un tableau $copie (meme si ce derniern’a pas ete cree par l’instruction “array”2).

mixte reset(array tab ) repositionne le pointeur interne au debut et renvoie le premier elementdu tableau.

mixte end(array tab ) repositionne le pointeur interne a la fin et renvoie le dernier element dutableau.

mixte current(array tab ) renvoie l’element courant.

mixte next(array tab ) renvoie l’element suivant en deplacant le pointeur interne.

mixte prev(array tab ) renvoie l’element precedant (previous) en deplacant le pointeur interne.

mixte key(array tab ) renvoie la clef courante.

array each(array tab ) extrait l’element courant (valeur (0 ou value) et clef (1 ou key)) etavance le pointeur d’une unite (renvoie FALSE lorsqu’il n’y a plus d’elements).

void list(mixte var [, mixte var]*) permet de recuperer dans une serie de variables lecontenu d’un tableau renvoye par une fonction.

2. Contrairement au langage C (et a la majorite des langages de programmation), la recopie d’un tableau dansun autre ne necessite pas de boucle de scrutation des differents elements.

Page 15: Aide-m´emoire PHP 5

CHAPITRE 2. SYNTAXE 14

mixte pos(array tab ) renvoie la position courante du pointeur.

Quelques exemples :

$nbelts=count($tableau);

for($index=0; $index<$nbelts; $index++) {

print("\$tab[$index] : $tableau[$index] <br>\n");

}

reset($tableau);

while($elt = each($tableau)) {

print("\$tab[".$elt["key"]."] : ".$elt["value"]."<br>\n");

}

reset($tableau);

while(list($clef, $valeur) = each($tableau)) {

print("\$tab[$clef] : $valeur <br>\n");

}

reset($tableau);

foreach($tableau as $val) {

$pos = pos($tableau);

print("\$tab[] : $val <br>\n");

}

reset($tableau);

foreach($tableau as $clef=>$valeur) {

print("\$tab[$clef] : $valeur <br>\n");

}

Remarque : il existe des tableaux multidimensionnels en PHP (tableau de tableaux), utiles parexemple pour afficher les champs d’une base de donnees MySQL.

Quelques fonctions complementaires sur les tableaux :

les fonctions de tri : asort() : (array sort) tri dans l’ordre croissant, arsort() : (array reversesort) : tri dans l’ordre decroissant, ksort() : (key sort) tri en fonction de l’ordre des clefs, na-sort() : (natural sort) tri en fonction de l’ordre naturel

les fonctions de manipulation des clefs et valeurs : array_values(), array_keys(),

autres fonctions : array_count_values(), array_diff(), array_filter(), array_flip(),

array_intersect(), array_map(), array_merge(), array_merge_recursive(), array_multisort(),

array_pad(), array_pop(), array_push(), array_reverse(), array_search(), array_shift(),

array_slice(), array_splice(), array_sum(), array_unique(), array_unshift(), array_walk(),

compact(), extract(), in_array(), range(), shuffle()

Page 16: Aide-m´emoire PHP 5

Chapitre 3

Quelques fonctions utiles

PHP regroupe actuellement plus de 2000 fonctions predefinies. L’objectif de ce chapitre n’estdonc pas d’en faire une presentation exhaustive mais de montrer quelques exemples de fonctionsimportantes.

3.1 Les fonctions d’affichage

void echo(string str1, [string stri]*) "" : c’est une pseudo-fonction permettant d’en-voyer un texte au navigateur sous la forme d’un nombre quelconque de parametres separespar des virgules, echo n’a pas besoin de parentheses.

ex. :

echo " var1 = " . $var1 . " et var2 = " . $var2;

void print(string str ) : permet d’envoyer un texte au navigateur.

integer printf(string format[, mixte args]) : permet d’envoyer un texte formate au na-vigateur (cf. la fonction printf( ) du langage C).

type representation format exemple

entier decimal %d printf("i = %d \n", $i);

hexadecimal %x printf("i = %x \n", $i);

hexadecimal %X printf("i = %X \n", $i);

binaire %b printf("i = %b \n", $i);

octal %o printf("i = %o \n", $i);

non signe %u printf("i = %u \n", $i);

reel %f printf("v = %f \n", $v);

caractere %c printf("c = %c \n", $c);

string %s printf("s = %s \n", $s);

Remarque : il est possible d’indiquer des caracteristiques d’affichage complementaires dans leformat. ex. : %02X, %3.2f

Pour certain caracteres ayant une signification precise en PHP, on utilise des sequences d’echap-pement : ex. : \n (new line), \r (return), \t (tabulation), \\ (backslash), \$ (dollar), \" (doublequote)

15

Page 17: Aide-m´emoire PHP 5

CHAPITRE 3. QUELQUES FONCTIONS UTILES 16

3.2 Les manipulations de chaınes de caracteres

3.2.1 Les manipulations usuelles

string sprintf(string format[, mixte args]) : se comporte comme printf et renvoie le re-sultat dans une chaıne de caracteres.

integer strcmp(string str1, string str2), strcasecmp() : compare deux chaınes de ca-racteres en etant sensible ou non a la casse.

integer strlen(string str ) : renvoie la longueur d’une chaıne.

strcspn(), strspn() : recherche un caractere dans une chaıne a partir d’un ensemble de carac-teres.

string strchr(string haystack, string needle), strrchr() : recherche une sous-chaınedans une chaıne de caracteres.

integer strpos(string haystack, string needle[, int offset]), integer strrpos(string haystack, char

: renvoie la position d’une sous-chaıne dans une chaıne.

string strstr(string haystack, string needle), stristr() : renvoie une portion de lachaıne.

strtok() : scinde une chaıne en plusieurs parties.

string substr(string str, int start[, int length]) : renvoie une sous chaıne.

mixte sscanf(string str, string format[, string &vari]*) : lecture formatee d’une chaınede caracteres, comme en C.

string strtoupper(string str ), string strtolower(string str ) : passage en majusculeset minuscules.

mixte str_replace(mixte search, mixte replace, mixte subject), string strtr(string str, string from,

: recherche et remplace une sous-chaıne dans une chaıne de caracteres.

array explode(string separateur, string str [, int limite]) : transforme une chaınede caracteres en un tableau.

string implode(string concat, array elements_tab) : transforme un tableau en une chaınede caracteres.

Quelques fonctions complementaires chunk_split(), count_chars(), crc32(), str_pad(), str_repeat(),

strrev(), substr_count(), substr_replace(), ucfirst(), ucwords(), wordwrap()

Remarque : il existe egalement un groupe de fonctions permettant de realiser des operationscomplexes : les expressions regulieres.

3.2.2 Les manipulations liees aux echanges (bdd, mail, formulaires, ...)

string addslashes(string str ), string addcslashes(string str, string charlist), escapeshellcmd(),

: ajoute des antislash devant tous les caracteres speciaux.

base64_decode(), base64_encode() : convertit un texte au format base64.

string ltrim(string str, [string charlist]), string trim(string str, [string charlist]), string

: eliminent les espaces multiples (” ”, \n, \r, \t) respectivement au debut, au debut et a lafin, a la fin et a la fin (sans liste de caracteres) d’une chaıne de caractere.

string htmlentities(string str[, int quote_style]), htmlspecialchars() : remplace lescaracteres speciaux par leurs equivalents HTML.

newline_to_br(),string nl2br(string str ) : insere la balise <br /> a la fin de chaque ligne(“\n”).

Page 18: Aide-m´emoire PHP 5

CHAPITRE 3. QUELQUES FONCTIONS UTILES 17

parse_url() void parse_str(string str[, array tab]) : analyse une requete (URL) de typeHTTP GET.

string stripslash(string str ), string stripcslashes(string str ) : supprime les ca-racteres antislash.

urldecode(), urlencode(), rawurldecode(), rawurlencode() : permettent de convertir un chaınevers ou depuis le format URL.

array get_meta_tags(string filename[, int use_include_path]) : extrait les balises<meta>du fichier passe en parametre

string apache_lookup_uri(string filename) : recuperation d’informations sur une URI.

array getallheaders(void) : retourne tous les en-tete de la requete dans un tableau.

void virtual(string filename) : appel d’un fichier externe (non php) de type script CGI ouSSI (shtml) par exemple.

Quelques fonctions complementaires : quotemeta(), strip_tags(), apache_note(), virtual()

3.2.3 <br /> et ’\n’

<br /> : est la balise HTML “break” de saut de ligne et demande au navigateur (cote client) depasser a la ligne.

\n : est l’indication d’un saut de ligne au niveau du code source HTML resultat de l’interpreteurPHP et ne sert qu’a la lisibilite du code source HTML.

3.2.4 Les fonctions particulieres et de conversion

string chr(int ascii), integer ord(string str ) : renvoie le caractere correspondant aucode ASCII passe en parametre et reciproquement.

integer ascii2edbcdic(string ascii_str), integer ebcdic2ascii(string ebcdic_str)

: ASCII <-> EBCDIC

strval() : convertie l’argument en une chaıne de caracteres.

eval() : tente d’executer le code PHP en argument.

3.3 Fichiers et repertoires

Les manipulations de fichiers et repertoires decrites ici concernent les fichiers (ou repertoires)situes sur le serveur puisque le script PHP s’execute cote serveur. Les fonctions de manipulationde fichiers sont tres proches de celles du langage C.

Remarque : nous n’aborderons pas dans cette presentation les possibilites d’acces a des fichierssitues sur des machines distantes.

Remarque : Il existe quelques fonctions PHP permettant de gerer les droits sur les fichiers etrepertoires (chgrp( ), chmod( ), chown( )).

3.3.1 Les fonctions lies aux fichiers

Informations sur un fichier

string basename(string path [, string suffix]) : renvoie le nom du fichier a partir d’unchemin d’acces complet.

Page 19: Aide-m´emoire PHP 5

CHAPITRE 3. QUELQUES FONCTIONS UTILES 18

void clearstatcache(void) : vide le cache systeme servant lors de l’acces aux fichiers.

integer file_exists(string filename) : teste l’existence d’un fichier : retourne true si lefichier existe, false sinon

integer filegroup(string filename) : retourne le GID du groupe d’appartenance du fichier,false en cas d’erreur

integer fileinode(string filename) : retourne le numero d’inode du fichier, false en casd’erreur

integer fileowner(string filename) : retourne l’UID du proprietaire du fichier, false encas d’erreur

integer fileperms(string filename) : retourne les droits associes au fichier, false en casd’erreur.

integer filesize(string filename) : retourne la taille du fichier, false en cas d’erreur.

string filetype(string filename) : retourne le type de fichier (block, char, dir, fifo, file,link, unknown), false en cas d’erreur.

boolean isfile(string filename) : determine si le nom passe en parametre est un fichier.

integer linkinfo(string path ) : verifie si un lien existe.

array stat(string filename) : retourne les informations (dev (volume), ino (inode), mode,nlink, uid, gid, rdev (type volume), size, atime, mtime, ctime, blksize, blocks) sur le fichier,sous la forme d’un tableau.

Manipulations de fichier(s)

integer chmod(string filename, int mode) : modifie les droits (Linux) sur le fichier, l’argu-ment mode est exprime en octal.

integer chown(string filename, mixte user) : change owner, change le proprietaire du fi-chier, l’argument user peut etre le username ou l’UID

integer copy(string source, string dest) : recopie un fichier dans un autre.

integer link(string target, string link) : cree un lien vers un fichier.

boolean move_uploaded_file(string filename, string destination) : permet de depla-cer le fichier filename, telecharge avec HTTP POST vers le dossier destination.

integer rename(string oldname, string newname) : permet de renommer un fichier.

integer unlink(string filename) : supprime un fichier

Les manipulations globales

array file(string filename) : lit un fichier et place son contenu dans un tableau dont chaqueelement est une ligne du fichier lu.

integer readfile(string filename [, int use_include_path]) : envoie l’integralite du contenudu fichier au navigateur (vers la sortie standard).

Lecture, ecriture, positionnement sur fichier

Rappel : Pour pouvoir acceder au contenu d’un fichier comme en C, il est indispensable de l’avoirouvert au prealable.

boolean fclose(resource fp ) : ferme un fichier prealablement ouvert avec fopen().

integer feof(resource fp ) : renvoie true si la fin du fichier est atteinte.

integer fflush(resource fp ) : vide le buffer fichier (synchronisation).

Page 20: Aide-m´emoire PHP 5

CHAPITRE 3. QUELQUES FONCTIONS UTILES 19

string fgetc(resource fp ) : retourne le caractere lu.

array fgetcsv(resource fp, int length[, string delimiter]) : retourne un tableau consti-tue des elements separes par le delimiteur (virgule par defaut).

string fgets(resource fp, int length) : retourne la chaıne de caracteres lue, jusqu’a length-1 ou jusqu’a la fin de ligne.

string fgetss(resource fp, int length[, string allowable_tags]) : variante de fgets(),retourne la chaıne de caracteres lue en supprimant les codes HTML ou PHP.

integer fopen(string filename, string mode [, int use_include_path]) : demande d’ou-verture du fichier (au systeme d’exploitation), les modes possibles sont : r (read), w (write),a (append) eventuellement combines avec le mode b (binary) et / ou l’operateur + pourindiquer un acces en lecture / ecriture.

fputs() : ecrit les donnees dans un fichier ouvert.

string fread(resource fp, int length) : lit en binaire le fichier jusqu’a length ou jusqu’a lafin du fichier.

fseek() : repositionne le pointeur interne.

ftell() : renvoie la position du pointeur interne.

fpassthru() : envoie vers le navigateur tout ou partie du contenu du fichier.

integer fwrite(resource fp, string str [, int length]) : ecrit str dans un fichier.

integer pclose(resource fp ) : identique a fclose(), pour un fichier ouvert avec popen().

integer popen(string commet, string mode ) : identique a fopen(), cf. pclose().

integer rewind(resource fp ) : replace le pointeur interne au debut du fichier.

integer set_file_buffer(resource fp, int buffer) : permet de parametrer la mise en buf-fer des donnees ecrite dans le fichier.

integer tmpfile(void) : permet de creer un fichier temporaire.

Remarque : il existe un ensemble de fonctions analogues pour les fichiers compresses : gzopen(),gzgets(), gzputs(), gzclose(), ...

3.3.2 Les fonctions liees aux repertoires (dossiers)

Remarque : Il est possible en PHP de manipuler un repertoire de la meme maniere qu’un fichier :dir(), opendir(), readdir(), rewinddir(), closedir(), ...

boolean chdir(string directory) : permet au script de changer de repertoire (renvoie falseen cas d’echec, true sinon).

void closedir(resource dir_handle) : ferme un repertoire ouvert par opendir().

resource dir(string directory) : “ouvre” un repertoire (dossier).

string dirname(string path ) : retourne la partie repertoire d’un chemin d’acces complet.

float disk_free_space(string dir ) : retourne l’espace disque libre du dossier (en octets).

float disk_total_space(string dir ) : retourne la taille en octets du dossier.

string getcwd(void) : get current working directory, retourne le chemin et le nom du dossierouvert.

boolean is_dir(string filename) : determine si le nom passe en parametre est un repertoire(directory).

integer mkdir(string path, int mode) : permet de creer un repertoire sur le serveur (sousreserve de disposer des droits necessaires).

resource opendir(string path ) : ouvre un dossier et retourne un pointeur de type ressource.

Page 21: Aide-m´emoire PHP 5

CHAPITRE 3. QUELQUES FONCTIONS UTILES 20

array pathinfo(string path ) : retourne des informations sur le chemin path sous forme d’untableau associatif contenant dirname, basename et extension (sous-chaınes d’un chemin defichier).

string readdir(resource dir_handle) : lit le contenu d’un dossier

void rewinddir(resource dir_handle) : retourne au debut (a la premiere entree) du dossier.

integer rmdir(string dirname) : permet de supprimer un repertoire (vide).

3.4 Les manipulations de dates

3.4.1 date et heure

Toutes les fonctions de date et heure en PHP utilisent la notion de “timestamp” qui est le nombrede secondes ecoulees depuis le 01/01/1970.

checkdate() : verifie la validite d’une date.

time() : renvoie le “timestamp” courant.

date() : renvoie une chaıne de caractere representative de la date ou de l’heure en fonctions ducode passe en argument.

gmdate() : opere de la meme maniere que date en prenant en compte le temps “Greenwich meri-dian”.

getdate() : renvoie un tableau associatif representatif de la date et de l’heure.

mktime(), gmmktime() : renvoient le“timestamp”correspondant a une date passee en parametre.

setlocale() : definie la specification locale relative a certaines fonctions PHP (ici, on utilisera lacategorie LC_TIME et la chaıne locale “french”ou “FR_fr”), cette fonction est alors associeesa l’utilisation de la fonction strFTime( ).

3.4.2 calendriers 1

Toutes les fonctions PHP relatives aux calendriers utilisent le jour julien (Julian Day Count)c’est a dire le nombre de jours ecoules en s’appuyant sur le calendrier Julien ayant pour originele 1er janvier -4712 (avec une annee 0). Ce principe de comptage est du au philosophe Joseph-Juste Scaliger (1540 - 1609), qui prend comme origine le lundi 1er janvier ˜4713 (l’an 1 de l’erechretienne correspond a l’an 4714 de ce decompte).

juliantojd() : calendrier julien -> Julian Day Count. (le calendrier Julien fut impose par Jules-Cesar (˜100 - ˜44) en l’an 708 de Rome).

gregoriantojd() : calendrier gregorien -> Julian Day Count. (le calendrier gregorien fut imposepar le pape Gregoire XIII en 1582).

jewishtojd() : calendrier juif -> Julian Day Count. (Le calendrier Juif est un calendrier Luni-Solaire mis en place par Hillel II vers 350, dans ce calendrier, l’ere juive commence le 6octobre -3760).

frenchtojd() : calendrier republicain francais -> Julian Day Count. (Le premier vendemiaire del’an I de la republique fut fixe au 22 septembre 1792. Le calendrier republicain ne resta envigueur qu’une douzaine d’annee).

jddayofweek() : renvoie le jour de la semaine.

jdmonthname() : renvoie le nom du mois.

1. Pour plus de precisions sur les informations techniques concernant les calendriers, cf. “La saga des calendriers”Jean Lefort - Belin, Pour la Science - 1998.

Page 22: Aide-m´emoire PHP 5

CHAPITRE 3. QUELQUES FONCTIONS UTILES 21

jdtojulian() : Julian Day Count -> calendrier julien.

jdtogregorian() : Julian Day Count -> calendrier gregorien.

jdtojewish() : Julian Day Count -> calendrier juif.

jdtofrench() : Julian Day Count -> calendrier republicain.Remarque : ces fonctions PHP ne sont disponibles que si l’extension “calendar” a ete installee.

3.5 Fonctions mathematiques

3.5.1 fonctions usuelles

mixte abs(mixte number) : renvoie la valeur absolue d’un nombre

mixte pow(mixte base, mixte exposant) : fonction puissance

float sqrt(float arg ) : fonction racine carree

float log(float arg ), float log10(float arg ) ,float exp(float arg ) : logarithmes etexponentielle

sin(), cos(), tan(), asin(), acos(), atan(), deg2rad(), rad2deg() : fonctions trigonometriques.

string base_convert(string number, int frombase, int tobase) : permet de realiser deschangements de base.

integer bindec(string binary_string), integer hexdec(string hex_string), integer octdec(string oct_string

: binaire -> decimal, hexadecimal -> decimal et octal -> decimal

string decbin(int number),string dechex(int number),string decoct(int number) : de-cimal -> binaire, decimal -> hexadecimal et decimal -> octal

mixte min(mixte arg1, [mixte argi]*), mixte max(mixte arg1, [mixte argi]*) : ren-voie le min (respectivement le max) d’un ensemble de valeurs passees en argument.

float ceil(float number) : renvoie le plus petit entier superieur a l’argument.

float round(float val, [int precision]) : arrondi a l’entier le plus proche

float floor(float number) : renvoie la valeur entiere immediatement inferieure.

string number_format(float number, [int dec, string sep, string sep]) : retourne unevaleur numerique sous la forme d’une chaıne de caractere formatee avec les caracteristiqueslocales (nationales) specifiees (separateur decimal : “.” ou “,” separateur des milliers : “.” ou“ ”.

float pi(void) : renvoie une valeur approchee de PI.

3.5.2 Les nombres aleatoires

void srand(int seed) : (seed random) initialise le generateur de nombres pseudo-aleatoires

int rand(void) : renvoie un nombre pseudo-aleatoire compris entre 0 et RAND_MAX.

integer getrandmax(void) : retourne la valeur maximum possible renvoyee par rand.

uniqid() : genere une serie aleatoire de 13 caracteres

Remarque : il existe un deuxieme ensemble de generation de nombres pseudo-aleatoires (algo-rithme de generation de meilleure qualite) : integer mt_getrandmax(void), void mt_srand(int seed)

et integer mt_rand([int min, int max] ).

3.5.3 les tres grands nombres

PHP fournit un ensemble de fonctions permettant de stocker des nombres tres grand ou tres precissous la forme de chaınes de caracteres :

bcadd(), bcsub(), bcmul(), bcdiv(), bccomp(), bcmod(), bcpow(), bcsqrt(), bcscale()

Page 23: Aide-m´emoire PHP 5

Chapitre 4

PHP et les formulaires XHTML

4.1 Rappel sur les formulaires XHTML

4.1.1 Structure du formulaire

<form method="" action=""> ... </form>

l’attribut “method” peut prendre une des deux valeurs suivantes :– get : dans ce cas les donnees du formulaires sont accolees a l’URL apres un point d’interrogation( ?), chaque champ du formulaire etant ensuite separe par le caractere esperluette (&), les espacessont remplaces par des “+”, les caracteres diacritiques sont remplaces par leurs equivalentshexadecimaux.

– post : les donnees du formulaire sont transmises au serveur dans l’entete http.l’attribut “action” designe le fichier php a executer, et peut prendre la valeur $PHP SELF.

4.1.2 les differentes entrees d’un formulaire

champ de saisie (textfield) :

<input type="text" name="">

champ de saisie multilignes :

<textarea rows="" cols="" name=""> ... </textarea>

cases a cocher (choix multiple) :

<input type="checkbox" name="tab[]" value="">

liste (choix unique ou multiple) :

<select name="tab[]" multiple>

<option> ...

<option> ...

</select>

boutons radio (choix unique) :

22

Page 24: Aide-m´emoire PHP 5

CHAPITRE 4. PHP ET LES FORMULAIRES XHTML 23

<input type="radio" name="" value=""> <!--

l’attribut checked="checked" peut etre precise -->

champ de saisie de mot de passe :

<input type="password" name="" size="">

bouton de remise a zero du formulaire :

<input type="reset" value="">

bouton de validation du formulaire (envoi au serveur) :

<input type="submit" value="">

bouton de traitement du formulaire par un script JavaScript (l’attribut onClick contient le nomde la fonction JavaScript a executer, celle-ci envoie le formulaire au serveur apres verification parDocument.forms[0].submit( ) ;)

<input type="button" value="" onClick="">

Remarque : l’attribut “type” peut prendre la valeur “hidden”, dans le cas de champs caches duformulaire (on peut ainsi passer des informations d’un formulaire a un autre).

Remarque : l’attribut “type” peut prendre la valeur “file” afin de realiser un “upload” de fichier (duclient vers le serveur).

Remarque : l’attribut onChange auquel on passe le nom d’une fonction JavaScript, permet dereagir a une action du visiteur sans necessairement avoir besoin d’un bouton submit (ex. : <selectname=”...” onChange=”...”> ... </select>).

4.2 La recuperation des informations saisies dans le formu-laire

Quelle que soit la methode (GET ou POST), le moyen le plus simple est d’utiliser l’attribut“name”des balises HTML precede du caractere ’$’ qui correspond alors a une variable dans le script PHP.

L’acces aux variables issues d’un formulaire XHTML en PHP5 1 prends la forme suivante :

$_GET["nom_var"]

$_POST["nom_var"]

D’autres solutions sont possibles (en particulier si le nombre de champs du formulaire est impor-tant) :

- dans la cas de la methode GET, par extraction des informations presentes dans la chaıne decaracteres accolee a l’URL ($QUERY STRING), en utilisant la fonction urldecode( ).

1. Cette syntaxe remplace les variables predefinies $HTTP GET VARS ou $HTTP POST VARS.

Page 25: Aide-m´emoire PHP 5

CHAPITRE 4. PHP ET LES FORMULAIRES XHTML 24

4.3 Un exemple complet

la structure generale est la suivante :

<form action="..." method="..."> <!--

action est le nom du fichier php de traitement

ou $PHP_SELF, method est soit post (parametres dans l’en-

tete HTTP, soit get

(parametres passes dans l’URL) -->

<select name="..."> <!-- liste de selections multiples -->

<option value="..."> ... </option>

<option value="..."> ... </option>

<option value="..."> ... </option>

</select>

<textarea name="..." cols="..." rows="..."> ... </textarea> <!--

zone de saisie -->

<input type="text" name="..." value="..." /> <!-- champs de saisie -

->

<input type="hidden" name="..." value="..." /> <!-- champs cache -->

<input type="submit" value="..." /> <!-- texte du bouton ok -->

<input type="reset" value="..." /> <!-- texte du bouton annuler -->

</form>

Remarque : un lien hypertexte peut etre complete par un point d’interrogation suivi d’une ouplusieurs variables passees a la page (dans l’URL) :

<a href="nextpage.php?var=val"> ...</a>

Page 26: Aide-m´emoire PHP 5

Chapitre 5

Complements

5.1 Construction multifichiers

Il existe en PHP deux methodes permettant de realiser des constructions multifichiers : require etinclude

5.1.1 require

require() : insere inconditionnellement le contenu d’un fichier, cette methode necessite moins deressources machine que la fonction include.

require_once() : permet de garantir que l’inclusion du fichier est unique (dans un ensemble defichiers imbriques par exemple).

5.1.2 include

include() : insere le contenu du fichier et peut etre place n’importe ou dans le code, en particuliera l’interieur d’une instruction de test : le contenu du fichier inserer est execute comme unscript, i.e. comme si le code correspondant appartenait au fichier courant.

include_once() : assure l’unicite de l’inclusion.

5.2 Quelques variables d’environnement

$PHP_SELF : nom du script en cours

$QUERY_STRING : chaıne au format URL contenant les parametres passes a la page en cours (casde la methode GET).

$HTTP_POST_FILES : tableau associatif dont les champs sont les noms des champs HTML <input

type="file" /> du formulaire (upload de fichiers du client vers le serveur).

$PHP_AUTH_USER : login d’un utilisateur prealablement identifie 1

$PHP_AUTH_PWD : mot de passe de l’utilisateur

1. $PHP AUTH USER et $PHP AUTH PWD ne fonctionne que si php est compile avec le serveur Apache, etne fonctionne pas si php est installe en tant que module d’Apache.

25

Page 27: Aide-m´emoire PHP 5

Index

abs(), 21acos(), 21addcslashes(), 16addslashes(), 16array, 12array(), 13asin(), 21atan(), 21

base64 decode(), 16base64 encode(), 16base convert(), 21basename(), 17bindec(), 21

ceil(), 21chdir(), 19checkdate(), 20chmod(), 18chop(), 16chown(), 18chr(), 17closedir(), 19copy(), 18cos(), 21count(), 13current(), 13

date(), 20decbin(), 21dechex(), 21decoct(), 21deg2rad(), 21dir(), 19dirname(), 19

each(), 13echo, 15end(), 13escapeshellcmd(), 16eval(), 17exp(), 21explode(), 16

false, 5, 7fclose(), 18

feof(), 18fgetc(), 19fgets(), 19file(), 18file exists(), 18filesize(), 18filetype(), 18floor(), 21fopen(), 19foreach, 10, 14form, 22fpassthru(), 19fputs(), 19fread, 19frenchtojd(), 20fseek(), 19ftell(), 19function, 6, 11fwrite, 19

get, 22getdate(), 20getrandmax(), 21gettype(), 5global, 6gmdate(), 20gmmktime(), 20gregoriantojd(), 20

hexdec(), 21htmlentities(), 16htmlspecialchars(), 16

implode(), 16include(), 25include once(), 25is dir(), 19isfile(), 18isset(), 5

jddayofweek(), 20jdmonthname(), 20jdtofrench(), 21jdtogregorian(), 21jdtojewish(), 21jdtojulian(), 21

26

Page 28: Aide-m´emoire PHP 5

INDEX 27

jewishtojd(), 20juliantojd(), 20

key(), 13

list, 11list(), 13log(), 21log10(), 21ltrim(), 16

max(), 21min(), 21mkdir(), 19mktime(), 20mt rand(), 21mt srand(), 21

newline to br(), 16next(), 13nl2br(), 16number format(), 21

octdec(), 21opendir, 19ord(), 17

parse str(), 17parse url(), 17phpinfo(), 5pi(), 21pos(), 14post, 22pow(), 21prev(), 13print(), 15printf(), 15

quotemeta(), 16

rad2deg(), 21rand(), 21rawurldecode(), 17rawurlencode(), 17readdir, 20readfile(), 18rename(), 18require(), 25require once(), 25reset(), 13return, 11rewind, 19rmdir(), 20round(), 21

setlocale(), 20

settype(), 5sin(), 21sizeof(), 13sprintf(), 16sqrt(), 21srand(), 21sscanf(), 16stat(), 18strcasecmp(), 16strchr(), 16strcmp(), 16strcspn(), 16stripcslashes(), 17stripslash(), 17stristr(), 16strlen(), 16strpos(), 16strrchr(), 16str replace(), 16strrpos(), 16strspn(), 16strstr(), 16strtok(), 16strtolower(), 16strtoupper(), 16strval(), 17substr(), 16

tan(), 21time(), 20trim(), 16true, 5, 7

uniqid(), 21urldecode(), 17urlencode(), 17

Page 29: Aide-m´emoire PHP 5

Bibliographie

ouvrages

– “PHP 5 Avance” - Eric Daspet - 5° edition - Eyrolles 2008– “Pratique de MySQL et PHP” - Philippe Rigaux - 4° edition - O’Reilly 2009

sites Internet

– http ://www.php.net/– http ://php.net/manual/fr/index.php

28