Introduction au Web · Introduction au Web PHP Par Elena CABRIO Basé sur les cours de Jean-Pierre...

38
Introduction au Web PHP Par Elena CABRIO Basé sur les cours de Jean-Pierre Lozi, Philippe Renevier et Andrea Tettamanzi 11/03/2020 Technologies du Web – ELENA CABRIO 1

Transcript of Introduction au Web · Introduction au Web PHP Par Elena CABRIO Basé sur les cours de Jean-Pierre...

Page 1: Introduction au Web · Introduction au Web PHP Par Elena CABRIO Basé sur les cours de Jean-Pierre Lozi, Philippe Renevier et Andrea Tettamanzi 11/03/2020 Technologies du Web –ELENA

Introduction au WebPHP

Par Elena CABRIO

Basé sur les cours de Jean-Pierre Lozi, Philippe Renevier et Andrea Tettamanzi

11/03/2020 Technologies du Web – ELENA CABRIO 1

Page 2: Introduction au Web · Introduction au Web PHP Par Elena CABRIO Basé sur les cours de Jean-Pierre Lozi, Philippe Renevier et Andrea Tettamanzi 11/03/2020 Technologies du Web –ELENA

Principes : définitions

langage : PHP (html preprocessor)

un pré processeur de HTTP

typage dynamique

orienté objet

créé par

Rasmus

Lerdorf

en 1994

5e version et 7e version

http://www.php.net/

HTTPDHTTP

TCP/IP 80

PHPHTML, Img, Script

Navigateur

TCP/IP

11/03/2020 Technologies du Web – ELENA CABRIO 2

Page 3: Introduction au Web · Introduction au Web PHP Par Elena CABRIO Basé sur les cours de Jean-Pierre Lozi, Philippe Renevier et Andrea Tettamanzi 11/03/2020 Technologies du Web –ELENA

Une exécution côté SERVEUR

Le script PHP est toujours

stocké et

exécuté sur le serveur web par l’interpréteur de PHP

Sur demande d’un document (.php, .inc)

Le serveur identifie que c’est un fichier php (extension)

Recherche les « balises » <?php … ?>

Lance l’interpréteur pour ces balises

Retourne le document généré (réponse HTTP)

11/03/2020 Technologies du Web – ELENA CABRIO 3

Page 4: Introduction au Web · Introduction au Web PHP Par Elena CABRIO Basé sur les cours de Jean-Pierre Lozi, Philippe Renevier et Andrea Tettamanzi 11/03/2020 Technologies du Web –ELENA

Internet : - 3.b identification de la

localisation de la page

(DNS)

- …

- 3.f Internet aiguille la

réponse vers l’ordinateur

demandeur

3.d - Réception de la demande par le serveur

3.e - Identification du document à partir de l’URL

L’utilisatrice veut voir la pager

http://www-sop.inria.fr/members/Elena.Cabrio

1. Tape l’adresse, valide

2. Le navigateur fait une requête

3. Le navigateur attend la réponse

4. Affiche la « page »

5. L’utilisatrice lit la page

3.a : le navigateur, via

l’ordinateur, demande

un document

3.c Internet

« aiguille » la

machine jusqu’à

la l’endroit

identifié (= un

ordinateur)

3.f - Renvois de la réponse (document ou erreur)

3.f

Exécution du PHP sur

le serveur entre les

étape 3.e et 3.f, avec

peut-être d’autres

requêtes

11/03/2020 Technologies du Web – ELENA CABRIO 4

Page 5: Introduction au Web · Introduction au Web PHP Par Elena CABRIO Basé sur les cours de Jean-Pierre Lozi, Philippe Renevier et Andrea Tettamanzi 11/03/2020 Technologies du Web –ELENA

Exécution du php

Langage interprété

Utilisable comme n’importe quel langage

Contextualisé Web

Serveur web et extension php

Exemple : xampp

Serveur apache

httpd.conf

php.ini

11/03/2020 Technologies du Web – ELENA CABRIO 58/11/2017 Introduction au Web – PHP – ELENA CABRIO 5

Page 6: Introduction au Web · Introduction au Web PHP Par Elena CABRIO Basé sur les cours de Jean-Pierre Lozi, Philippe Renevier et Andrea Tettamanzi 11/03/2020 Technologies du Web –ELENA

Php et web

Un programme

dont le résultat est une page web

le résultat (flux de sortie = echo) étant renvoyé au client

dont Le résultat est donc la page web

Ce programme permet

d’avoir un contenu qui évolue sans que le code « source » ne soit modifié

de traiter des données

d’écrire des résultats côté serveur

11/03/2020 Technologies du Web – ELENA CABRIO 6

Page 7: Introduction au Web · Introduction au Web PHP Par Elena CABRIO Basé sur les cours de Jean-Pierre Lozi, Philippe Renevier et Andrea Tettamanzi 11/03/2020 Technologies du Web –ELENA

exemple

(version côté obscur)<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8" />

<title>HTML avec PHP</title>

</head>

<body>

<h1>HTML + PHP</h1>

<p>Nous sommes le <?php

echo date ("j/m/Y");

?></p>

</body></html>

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8" />

<title>HTML avec PHP</title>

</head>

<body>

<h1>HTML + PHP</h1>

<p>Nous sommes le 26/01/2017</p>

</body></html>

11/03/2020 Technologies du Web – ELENA CABRIO 7

Page 8: Introduction au Web · Introduction au Web PHP Par Elena CABRIO Basé sur les cours de Jean-Pierre Lozi, Philippe Renevier et Andrea Tettamanzi 11/03/2020 Technologies du Web –ELENA

exemple

(version côté lumineux)<?php

// calcul préalable

$date = "<p>Nous sommes le";

$date = $date . date("j/m/Y") . "</p>";

?>

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8" />

<title>HTML avec PHP</title>

</head>

<body>

<h1>HTML + PHP</h1>

<?php

echo $date;

?>

</body></html>

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8" />

<title>HTML avec PHP</title>

</head>

<body>

<h1>HTML + PHP</h1>

<p>Nous sommes le 26/01/2017</p>

</body></html>

11/03/2020 Technologies du Web – ELENA CABRIO 8

Page 9: Introduction au Web · Introduction au Web PHP Par Elena CABRIO Basé sur les cours de Jean-Pierre Lozi, Philippe Renevier et Andrea Tettamanzi 11/03/2020 Technologies du Web –ELENA

Syntaxe

Vue au fur et à mesure

Commentaires : // (sur une ligne) ou /* … */

Fin des lignes par ;

Début d’un bloc d’instruction avec {

Fin d’un bloc d’instruction avec }

Variables :

Forme : $nom

Pas de déclaration

Le type dépend du contenu

Appel de fonction (avec des variables ou des valeurs)

nomDeLaFonction(paramètre1, paramètre2, paramètre3);

11/03/2020 Technologies du Web – ELENA CABRIO 9

Page 10: Introduction au Web · Introduction au Web PHP Par Elena CABRIO Basé sur les cours de Jean-Pierre Lozi, Philippe Renevier et Andrea Tettamanzi 11/03/2020 Technologies du Web –ELENA

Chaines de caractères $chaine = "une chaine de caractère";

strlen($chaine) pour connaître la taille

$chaine{$i} : le (i+1) ième caractère

. pour concaténer (ajouter deux chaines)

Remplacement des variables par leurs valeurs quand elles sont entre " … "

$msg = "<p>la variable \$chaine vaut : $chaine</p>";

$msg contient le texte «la variable $chaine vaut : une chaine de caractère»

Caractères spéciaux : pour les voirs tels quels il faut les précéder d’un \

\$ pour avoir un caractère ‘$’

\n : retour à la ligne ; \t : tabulation

Fonction print de php : pour afficher (générer du html) :

print($msg) ; // le contenu de $msg sera visible dans la page web

echo $msg ; // équivalent

echo "$msg" ; // équivalent

11/03/2020 Technologies du Web – ELENA CABRIO 10

Page 11: Introduction au Web · Introduction au Web PHP Par Elena CABRIO Basé sur les cours de Jean-Pierre Lozi, Philippe Renevier et Andrea Tettamanzi 11/03/2020 Technologies du Web –ELENA

CONDITION : IF / ELSE La structure la plus courante est le if ... else.

if (expression) // Bloc { } si expression est vraie.

else // Bloc { } si expression est fausse (optionel).

// Ici le script continue.

Exemple

$marquePluriel = ""; // chaine vide initiale

if ($nbJour > 1)

{ $marquePluriel = "s"; } // s’il y a plus qu’un jour

$texte = "<p>Il y a $nbJour jour$marquePluriel</p>";

Si $NbJour vaut 1, $texte vaut "<p>Il y a 1 jour</p>"

Si $NbJour vaut 2, $texte vaut "<p>Il y a 2 jours</p>"

11/03/2020 Technologies du Web – ELENA CABRIO 11

Page 12: Introduction au Web · Introduction au Web PHP Par Elena CABRIO Basé sur les cours de Jean-Pierre Lozi, Philippe Renevier et Andrea Tettamanzi 11/03/2020 Technologies du Web –ELENA

Logiques et comparaisons

($a && $b) //ET logique.

($a || $b ) // OU logique

($a xor $b) //Ou exclusif

(!$a) // NOT

($a == $b) //Vrai si $a est égal à $b.

($a != $b) //Vrai si $a est différent de $b.

($a < $b) //Vrai si $a est inférieur à $b.

($a > $b) //Vrai si $a est supérieur à $b.

($a <= $b) //Vrai si $a est inférieur ou égal à $b.

($a >= $b) //Vrai si $a est supérieur ou égal à $b

if ( ($a < $b) && ($a < $c) ) { /* …. */ }

11/03/2020 Technologies du Web – ELENA CABRIO 112

Page 13: Introduction au Web · Introduction au Web PHP Par Elena CABRIO Basé sur les cours de Jean-Pierre Lozi, Philippe Renevier et Andrea Tettamanzi 11/03/2020 Technologies du Web –ELENA

Opérations Opérateurs arithmétiques :

$a + $b //Addition de $a et $b

$a - $b //Soustraction de $b `a $a

$a * $b //Multiplication de $a et $b

$a / $b //Division de $a par $b

$a % $b //$a modulo $b (reste de la division de $a par $b)

$i++; // incrémenter $i (qui vaut 5 si son ancienne valeur est 4)

$j = ++$i; // incrémenter $i puis affecter cette valeur à $j

$k = $i++; // affecter la valeur de $i à $k puis incrémenter $i

$k--; // décrémenter $k

Opérateur de concaténation des chaînes:

$c1 = "Bonjour " ;

$c2 = " le monde";

$c = $c1 . " tout " . $c2 ; //donne « Bonjour tout le monde » dans $c

$c .= " ! "; //donne « Bonjour tout le monde !» dans $c, équivalent à $c = $c . " ! ";

8/11/2017 Technologies du Web – ELENA CABRIO13

13

Page 14: Introduction au Web · Introduction au Web PHP Par Elena CABRIO Basé sur les cours de Jean-Pierre Lozi, Philippe Renevier et Andrea Tettamanzi 11/03/2020 Technologies du Web –ELENA

Fonctions internes

PHP dispose de nombreuses fonctions et structures standards.

http://www.php.net

Il y a aussi des fonctions qui requièrent des extensions spécifiques de PHP,

sans lesquelles vous obtiendrez l'erreur fatale undefined function.

Utilisez phpinfo( ) ou get_loaded_extensions() pour savoir quelles sont les

extensions qui sont compilées avec votre PHP.

11/03/2020 Technologies du Web – ELENA CABRIO 14

Page 15: Introduction au Web · Introduction au Web PHP Par Elena CABRIO Basé sur les cours de Jean-Pierre Lozi, Philippe Renevier et Andrea Tettamanzi 11/03/2020 Technologies du Web –ELENA

Exemple de fonction php : datestring date ( string format [, int timestamp] )

retourne une date sous forme d'une chaîne, au format donné par la chaîne format. La date est

fournie par le paramètre timestamp (un entier), sous la forme d'un timestamp. Par défaut, la

date courante est utilisée.

<?php

// Aujourd'hui, le 12 April 2006, 10:16:18 am

$aujourdhui = date('F j, Y, g:i a'); // April 12, 2006, 10:16 am

$aujourdhui = date('m.d.y'); // 04.12.06

$aujourdhui = date('j, m, Y'); // 12, 04, 2006

$aujourdhui = date('Ymd'); // 20060412

$aujourdhui = date('\C\'\e\s\t\ \l\e\ jS \j\o\u\r\. '); // C'est le 12th jour.

$aujourdhui = date('D M j G:i:s T Y'); // Wen Apr 12 10:16:18 Paris, Madrid 2006

$aujourdhui = date('H:i:s'); // 10:16:18

// notation française

$aujourdhui = date('d/m/y'); // 12/04/06

$aujourdhui = date('d/m/Y‘); // 12/04/2006

?> 11/03/2020 Technologies du Web – ELENA CABRIO 15

Page 16: Introduction au Web · Introduction au Web PHP Par Elena CABRIO Basé sur les cours de Jean-Pierre Lozi, Philippe Renevier et Andrea Tettamanzi 11/03/2020 Technologies du Web –ELENA

Exemple de fonction php : strtotime

int strtotime ( string time [, int now] )

essaye de lire une date au format anglais US dans la chaîne time, et de la transformer en timestamp Unix (le nombre de secondes depuis le 1er Janvier 1970 à 00:00:00 GMT), relativement au timestamp now, ou à la date courante si ce dernier est omis.

Le résultat peut servir en second paramètre à date

<?php

$now = strtotime('now');

$Xmas = strtotime('25 december 2015');

$Xmas = strtotime('2015-12-25'); // cela ne change rien

$Xmas = strtotime('2015-12-25 11:50:00'); // idem avec l’heure

$nextWeek = strtotime('+1 week');

$nextMonday = strtotime('next Monday');

?> 11/03/2020 Technologies du Web – ELENA CABRIO 16

Page 17: Introduction au Web · Introduction au Web PHP Par Elena CABRIO Basé sur les cours de Jean-Pierre Lozi, Philippe Renevier et Andrea Tettamanzi 11/03/2020 Technologies du Web –ELENA

exercice : calcul de date

Notez qu’il y a 60*60*24 = 86400

secondes dans un jour

Les opérations de calculs sont

« classique » : +, -, *, /

Exemple : $diff = $date1 - $now ;

La fonction de php « floor » permet

d’obtenir la valeur entière la plus

proche (mais inférieur)

Exemple : $val = floor(9.999); // 9

N’OUBLIEZ PAS LES BALISES HTML POUR

AFFICHER VOS CALCULS

1. Dans le fichier date.php

affichiez la date du jour

2. Dans le fichier date.php

affichez le nombre de jour

restant avant le 21 juin

2020

3. Dans le fichier date.php

affichez le nombre de jour

écoulez depuis la rentrée

(le 7 septembre 2019)

11/03/2020 Technologies du Web – ELENA CABRIO 17

Page 18: Introduction au Web · Introduction au Web PHP Par Elena CABRIO Basé sur les cours de Jean-Pierre Lozi, Philippe Renevier et Andrea Tettamanzi 11/03/2020 Technologies du Web –ELENA

<?php

$date = strtotime('21 june 2020');

$diff = $date - strtotime('now');

$resteJ = $diff / (60*60*24) ;

$resteJ = (int) floor( $resteJ );

$resteS = $diff - $resteJ*(60*60*24);

$tempsRestant = "<p>Il reste ".$resteJ." jours et ".$resteS."

secondes avant le 21 june 2020 </p>";

?>

11/03/2020 Technologies du Web – ELENA CABRIO 18

Page 19: Introduction au Web · Introduction au Web PHP Par Elena CABRIO Basé sur les cours de Jean-Pierre Lozi, Philippe Renevier et Andrea Tettamanzi 11/03/2020 Technologies du Web –ELENA

Structures de contrôle

Éléments de Base de Php

11/03/2020 Technologies du Web – ELENA CABRIO 19

Page 20: Introduction au Web · Introduction au Web PHP Par Elena CABRIO Basé sur les cours de Jean-Pierre Lozi, Philippe Renevier et Andrea Tettamanzi 11/03/2020 Technologies du Web –ELENA

Foreach (1/2) C'est un moyen simple de passer en revue un tableau

Deux syntaxes (avec ou sans clefs)

foreach ($tableau as $value) { /*

$value prend successivement toutes les valeurs contenues dans $tableau

toutes les instructions faites dans ce bloc sont exécutées pour

chaque valeur

*/}

À chaque itération la valeur de l'élément courant est assignée à $value et le pointeur interne à la liste (tableau) est avancé d'un élément

Tant qu’il reste des cases non parcourues dans le tableau, à la prochaine itération, on accédera à l'élément suivant.

11/03/2020 Technologies du Web – ELENA CABRIO 20

Page 21: Introduction au Web · Introduction au Web PHP Par Elena CABRIO Basé sur les cours de Jean-Pierre Lozi, Philippe Renevier et Andrea Tettamanzi 11/03/2020 Technologies du Web –ELENA

Exemple de liste : glob

array glob ( string $pattern [, int $flags = 0 ] )

La fonction glob() recherche tous les fichiers don’t le chemin correspond à $pattern

$pattern est proche de celui du « ls »

"*.php" : tous les fichiers php dans le dossier dans lequel s’exécute le script

"./news/*.*" : tous les fichiers dans le sous-dossiers news

Les options (flags) possibles sont :

GLOB_MARK - Adds a slash to each directory returned

GLOB_NOSORT - Return files as they appear in the directory (no sorting)

GLOB_NOCHECK - Return the search pattern if no files matching it were found

GLOB_NOESCAPE - Backslashes do not quote metacharacters

GLOB_BRACE - Expands {a,b,c} to match 'a', 'b', or 'c'

GLOB_ONLYDIR - Return only directory entries which match the pattern

GLOB_ERR - Stop on read errors (like unreadable directories), by default errors are ignored.

11/03/2020 Technologies du Web – ELENA CABRIO 21

Page 22: Introduction au Web · Introduction au Web PHP Par Elena CABRIO Basé sur les cours de Jean-Pierre Lozi, Philippe Renevier et Andrea Tettamanzi 11/03/2020 Technologies du Web –ELENA

Foreach (2/2) : exemple

Supposons que le script php soit exécuté dans le dossier « politique »

// listes des fichiers .news dans le dossier courant

$fichiers = glob("*.news");

$texte = "<p>Le dossier contient les fichiers : ";

foreach($fichiers as $f)

// $f prendra successivement toutes les valeurs (ici

// les noms des fichiers) contenues dans la

// liste/tableau $fichiers

{

$texte = $texte . "$f , ";

}

11/03/2020 Technologies du Web – ELENA CABRIO 22

Page 23: Introduction au Web · Introduction au Web PHP Par Elena CABRIO Basé sur les cours de Jean-Pierre Lozi, Philippe Renevier et Andrea Tettamanzi 11/03/2020 Technologies du Web –ELENA

foreach($fichiers as $f)

{

$texte = $texte . "$f, ";

}

Avant la boucle : $texte vaut "<p>Le dossier contient les fichiers : "

1ère itération: $f vaut "01.news" ; il reste à parcourir 02,news 03,news 04.news 05,news$texte vaut "<p>Le dossier contient les fichiers : 01.news, "

2ième itération: $f vaut "02.news" ; il reste à parcourir 03,news 04.news 05,news$texte vaut "<p>Le dossier contient les fichiers : 01.news, 02.news, "

3ième itération: $f vaut "03.news" ; il reste à parcourir 04.news 05,news$texte vaut "<p>Le dossier contient les fichiers : 01.news, 02.news, 03.news, "

4ième itération: $f vaut "04.news" ; il reste à parcourir 05,news$texte vaut "<p>Le dossier contient les fichiers : 01.news, 02.news, 03.news, 04.news, "

5ième itération: $f vaut "05.news" ; il ne reste plus rien à parcourir$texte vaut "<p>Le dossier contient les fichiers : 01.news, 02.news, 03.news, 04.news, 05.news, "

Fin de la boucle :$texte vaut "<p>Le dossier contient les fichiers : 01.news, 02.news, 03.news, 04.news, 05.news, "

Déroulement de l’exemple

11/03/2020 Technologies du Web – ELENA CABRIO 23

Page 24: Introduction au Web · Introduction au Web PHP Par Elena CABRIO Basé sur les cours de Jean-Pierre Lozi, Philippe Renevier et Andrea Tettamanzi 11/03/2020 Technologies du Web –ELENA

Chaines de caractère

11/03/2020 Technologies du Web – ELENA CABRIO 24

Page 25: Introduction au Web · Introduction au Web PHP Par Elena CABRIO Basé sur les cours de Jean-Pierre Lozi, Philippe Renevier et Andrea Tettamanzi 11/03/2020 Technologies du Web –ELENA

Chaines de caractères $chaine = "une chaine de caractère";

strlen($chaine) pour connaître la taille

$chaine{$i} : le (i+1)e caractère

. pour concaténer (ajouter deux chaines)

array explode ( string $delimiter , string $string)

Retourne un tableau découpant $string en fonction des occurrences de

$delimiter

Exemple explode(" / " ,

"http://deptinfo.unice.fr/~stouati/L1|")

donnera :

1

deptinfo.unice.fr2

~stouati3

http:0

L1|411/03/2020 Technologies du Web – ELENA CABRIO 25

Page 26: Introduction au Web · Introduction au Web PHP Par Elena CABRIO Basé sur les cours de Jean-Pierre Lozi, Philippe Renevier et Andrea Tettamanzi 11/03/2020 Technologies du Web –ELENA

Chaines de caractères

$Remplacement des variables par leurs valeurs quand elles sont entre " … "

$msg = "<p>la variable \$chaine vaut : $chaine</p>";

$msg contient le texte «la variable $chaine vaut : une chaine de caractère»

Caractères spéciaux : pour les voir tels quels il faut les précéder d’un \

\$ pour avoir un caractère ‘$’

\n : retour à la ligne ; \t : tabulation

Fonction print de php : pour afficher (générer du html) :

print($msg) ; // le contenu de $msg sera visible dans la page web

echo $msg ; // équivalent

echo "$msg" ; // équivalent

11/03/2020 Technologies du Web – ELENA CABRIO 26

Page 27: Introduction au Web · Introduction au Web PHP Par Elena CABRIO Basé sur les cours de Jean-Pierre Lozi, Philippe Renevier et Andrea Tettamanzi 11/03/2020 Technologies du Web –ELENA

Les variables dans les chaînes de caractèreEntourez le nom de la variable avec des accolades pour indiquer

explicitement son nom.

<?php

$aliment = ‘fromage';

// Correct, car "," n'est pas autorisé dans les noms de variables

echo "Du $aliment et du pain !";

// Pas correct, car 's' peut faire partie d'un nom de variable, et PHP

recherchera alors $aliments (=> Notice + remplacer par une chaine vide)

echo "Il a goûté plusieurs $aliments";

echo "Il a goûté plusieurs {$aliment}s"; // Correct

?>

11/03/2020 Technologies du Web – ELENA CABRIO 27

Page 28: Introduction au Web · Introduction au Web PHP Par Elena CABRIO Basé sur les cours de Jean-Pierre Lozi, Philippe Renevier et Andrea Tettamanzi 11/03/2020 Technologies du Web –ELENA

Fonctions courantes

Sous chaine de caractère

substr

string substr ( string $string , int $start [, int $length ] )

Retourne le segment de $string défini par $start et $length.

Ne modifie pas $string

substr("fonctions courantes", 1, 3) "onc"

Supprime les espaces (ou d'autres caractères) en début et fin de chaîne

trim

stringtrim(string$string [,string $character_mask=" \t\n\r\0\x0B" ])

$title=“ Programming PHP \n”

$string=trim($title); \\$string=“Programming PHP”11/03/2020 Technologies du Web – ELENA CABRIO 28

Page 29: Introduction au Web · Introduction au Web PHP Par Elena CABRIO Basé sur les cours de Jean-Pierre Lozi, Philippe Renevier et Andrea Tettamanzi 11/03/2020 Technologies du Web –ELENA

Fonctions courantes

Retourne un segment de chaîne

Substr

string substr(string $string, int$start[ , int$length]

$name= "Fred Flintstone“

$fluff=substr($name, 6, 4); //$fluff = “lint”

Recherche dans une chaine

strpos

int strpos ( string $string , mixed $recherche)

Cherche la position numérique de la première occurrence

de $recherche dans $string.

strpos("fonctions courantes", "on") 111/03/2020 Technologies du Web – ELENA CABRIO 29

Page 30: Introduction au Web · Introduction au Web PHP Par Elena CABRIO Basé sur les cours de Jean-Pierre Lozi, Philippe Renevier et Andrea Tettamanzi 11/03/2020 Technologies du Web –ELENA

Fonctions courantes

Remplacement de sous-partie(s)

str_replace

mixed str_replace ( mixed $search , mixed $replace , mixed $subject

[, int &$count ] )

Pour remplacer les apparitions de $search dans $subject par $replace

on peut limiter ce remplacement à $count fois

Les paramètres peuvent être des tableaux… c.f. ci-dessous… pour

des recherches / remplacements successifs sur plusieurs mots

Retourne le résultat : un chaine de caractères (ou un tableau)

str_replace("on", "XXX", "fonctions courantes") "fXXXctiXXXs

courantes"

11/03/2020 Technologies du Web – ELENA CABRIO 30

Page 31: Introduction au Web · Introduction au Web PHP Par Elena CABRIO Basé sur les cours de Jean-Pierre Lozi, Philippe Renevier et Andrea Tettamanzi 11/03/2020 Technologies du Web –ELENA

Conversion Vers une chaine de caractère

(string)

fonction strval( )

Conversion automatique (cas d’echo)

Un tableau sera converti en « Array » : utilisation de la fonction var_dump( ) ou print_r( )

<?php

$b=3.1;

$c=true;

var_dump($b,$c);?>

cet exemple va

afficher:

float=3.1

bool=true

11/03/2020 Technologies du Web – ELENA CABRIO 31

Page 32: Introduction au Web · Introduction au Web PHP Par Elena CABRIO Basé sur les cours de Jean-Pierre Lozi, Philippe Renevier et Andrea Tettamanzi 11/03/2020 Technologies du Web –ELENA

Conversion

Vers un entier

fonction intval retourne la valeur numérique entière équivalente d'une variable

echointval(42); //42

echointval(4.2); //4

echointval('42'); //42

11/03/2020 Technologies du Web – ELENA CABRIO 32

Page 33: Introduction au Web · Introduction au Web PHP Par Elena CABRIO Basé sur les cours de Jean-Pierre Lozi, Philippe Renevier et Andrea Tettamanzi 11/03/2020 Technologies du Web –ELENA

Association “indice” -> valeur

Tableaux

1

Mme. Martin2

E.T.3

M. Dupond0

Teal’C411/03/2020 Technologies du Web – ELENA CABRIO 33

Page 34: Introduction au Web · Introduction au Web PHP Par Elena CABRIO Basé sur les cours de Jean-Pierre Lozi, Philippe Renevier et Andrea Tettamanzi 11/03/2020 Technologies du Web –ELENA

Tableaux Une variable

=> plusieurs cases (avec chacune un indice différent) => une valeur par case (qui peut être un tableau)

PHP gère dynamiquement la taille des tableaux

indicés soit associatifs.

Tableaux indicés : un entier positif par case.

Compteur/pointeur interne au tableau

Création:

$tab[0] = " élément 1 "; $tab[1] = "élément 2 ";

$tab[2] = 120;

// Ou compteur/pointeur interne au tableau

$tab[] = "élément 1 "; // $tab[0] !

$tab[] = "élément 2 "; // $tab[1] !

$tab[] = 120; // $tab[2] !

// Ou fonction « array »

$tab = array("élément 1 ", "élément 1 ", 120);

8/11/2017 Technologies du Web – ELENA CABRIO 34

34

Page 35: Introduction au Web · Introduction au Web PHP Par Elena CABRIO Basé sur les cours de Jean-Pierre Lozi, Philippe Renevier et Andrea Tettamanzi 11/03/2020 Technologies du Web –ELENA

Tableaux associatifs Indexation par clef = une chaine de caractères

Exemple

$mes["Vertigo"] = "Hitchcock";

$mes["Sacrifice"] = "Tarkovski";

$mes["Alien"] = "Scott";

// Ou fonction « array »

$mes = array(

"Vertigo" => "Hitchcock",

"Sacrifice" => "Tarkovski",

"Alien" => "Scott");

11/03/2020 Technologies du Web – ELENA CABRIO 35

Page 36: Introduction au Web · Introduction au Web PHP Par Elena CABRIO Basé sur les cours de Jean-Pierre Lozi, Philippe Renevier et Andrea Tettamanzi 11/03/2020 Technologies du Web –ELENA

Tableaux multi-dimensionnels

Une case peut contenir un tableau dont une case (ou plusieurs) peut être un tableau, etc.

$tab = array( array("En haut gauche", "En haut

droite"), array("En bas gauche", "En bas droite"),

array("clef" => 1);

// $tab[0][0] == "En haut gauche";

// $tab[0][1] == "En haut droite";

// $tab[1][0] == "En bas gauche";

// $tab[1][1] == "En bas droite";

// $tab[2]["clef"] == 1

11/03/2020 Technologies du Web – ELENA CABRIO 36

Page 37: Introduction au Web · Introduction au Web PHP Par Elena CABRIO Basé sur les cours de Jean-Pierre Lozi, Philippe Renevier et Andrea Tettamanzi 11/03/2020 Technologies du Web –ELENA

Connaitre le nombre d’élément

d’un tableau

Fonction count

Exemple

$tab = array ("élément 1 ", "élément 1 ", 120);

count($tab) vaut 3

$mes = array (

"Vertigo" => array ( "Alfred", "Hitchcock"),

"Sacrifice" => array ( "Andrei", "Tarkovski"),

"Alien" => array ( "Ridley", "Scott"));

count($mes) vaut 3

count($mes["Vertigo"]) vaut 2

11/03/2020 Technologies du Web – ELENA CABRIO 37

Page 38: Introduction au Web · Introduction au Web PHP Par Elena CABRIO Basé sur les cours de Jean-Pierre Lozi, Philippe Renevier et Andrea Tettamanzi 11/03/2020 Technologies du Web –ELENA

unset

unset() détruit les variables spécifiées. (ne retourne pas de valeurs)

$arr = array(5 => 1, 12 => 2);

$arr[] = 56; // Ceci revient à $arr[13] = 56; à ce moment du

script

$arr["x"] = 42; // Ceci ajoute un nouvel élément avec l'index

"x"

unset($arr[5]); // Ceci efface un élément du tableau

unset($arr); // Ceci efface tout le tableau

11/03/2020 Technologies du Web – ELENA CABRIO 38