Académique Documents
Professionnel Documents
Culture Documents
Côté Serveurs
1
Principe
Perl
3
Modèle du fonctionnement du
PHP
4
Modèle du fonctionnement
du PHP
Architecture (avec Apache)
APACHE
PHP
POST/GET
Répertoires
web
6
Historique
7
PHP, qu'est-ce que c'est ?
8
Premier programme
<HTML>
<HEAD><TITLE>Mon premier programme</TITLE></HEAD>
<BODY>
il est sur le serveur
<?php print date ("H i s"); ?>
</BODY>
</HTML>
9
Premier programme
Côté navigateur
<HTML>
<HEAD> <TITLE> Heure </TITLE> </HEAD>
<BODY>
<P>
Sur le serveur, il est actuellement 16:39:27
</P>
</BODY>
</HTML>
10
Généralité
Extension du fichier :
◼ .php pour du PHP 4
Délimiteur :
◼ <? ... ?>
11
Les bases du langage
Syntaxe du langage
12
Commentaires
<?php
echo 'Ceci est un test'; // Ceci est un commentaire sur une seule ligne, style c++
/* Ceci est un commentaire sur
plusieurs lignes */
echo 'Ceci est un autre test';
echo 'Et un test final';
# Ceci est un commentaire style shell sur une seule ligne
?>
14
Syntaxe du langage
Variables, types et
opérateurs
15
Variables, types et
opérateurs (I)
Le typage des variables est implicite en php.
◼ Il n’est donc pas nécessaire de déclarer leur type au préalable
◼ ni même de les initialiser avant leur utilisation.
Les identificateurs de variable sont précédés du symbole "$" (dollars).
Exemple : $variable.
Les variables peuvent être de type entier (integer), réel (double), chaîne
de caractères (string), tableau (array), objet (object), booléen
(boolean)...
Il est possible de convertir une variable en un type primitif grâce au cast
(comme en C).
◼ Exemple :
16
Booléen
17
Exemple
<?php
$valeur = true;
echo '<br/>affichage valeur à TRUE: "'.$valeur.'"';
$valeur = false;
echo '<br/>affichage valeur à FALSE: "'.$valeur.'"';
exit;
?>
18
Les entiers
19
Exemples
<?php
$a = 1234; // un nombre décimal
$a = -123; // un nombre négatif
$a = 0123; // un nombre octal (équivalent à 83 décimales)
$a = 0x1A; // un nombre hexadécimal (équivalent à 26 décimales)
?>
20
Nombres décimaux
21
Exemple
<?php
$a = 1.234;
$b = 1.2e3;
$c = 7E-10;
?>
22
Les chaînes de caractères
Syntaxe
◼ Une chaîne de caractères littérale peut être
spécifiée de 2 façons différentes :
⚫ Entourée de guillemets simples
⚫ Entourée de guillemets doubles
23
Entourée de simple guillemet
24
Exemple
<?php
echo 'ceci est une chaîne simple';
25
Chaînes de caractères (II)
Opérateur de concaténation de chaînes : . (point)
Exemple 1 :
$a = "Salam";
$b= " tout le monde";
echo $a.$b;
Exemple 2 :
$prenom = " Batou ";
$nom = $prenom. " Larbi ";
Exemple 3 :
$filiere = " 3ème année ";
$filiere.= " SIR ";
echo $filiere; 26
Chaînes de caractères (III)
Affichage d’une chaîne avec print :
Exemples:
print 'Hello Word.';
print "Nom : ". $name;
print("Bonjour");
Quelques fonctions:
strlen($str) : retourne le nombre de caractères d’une chaîne
strtolower($str) : conversion en minuscules
strtoupper($str) : conversion en majuscules
trim($str) : suppression des espaces de début et de fin de chaîne
substr($str,$i,$j) : retourne une sous chaîne (entre les positions i et j)
strnatcmp($str1,$str2) : comparaison de 2 chaînes
addslashes($str) : déspécialise les caractères spéciaux (‘, ‘’, \)
ord($char) : retourne la valeur ASCII du caractère
27
Chaînes de caractères (IV)
On peut délimiter les chaînes de caractères avec la
syntaxe Here-doc.
Exemple :
$essai = <<<EOD
Ma chaîne ‘’essai’’
sur plusieurs lignes.
EOD;
echo $essai;
?>
</BODY>
</HTML>
29
Variables, types et
opérateurs (II)
Quelques fonctions :
◼ empty($var) : renvoie vrai si la variable est vide
◼ Exemple :
30
Variables, types et
opérateurs (III)
Opérateurs arithmétiques :
◼ + (addition),
31
Variables, types et
opérateurs (IV)
Opérateurs logiques :
◼ and, && (et), or, || (ou), xor (ou exclusif), !
(non)
Opérateurs de comparaison :
◼ == (égalité), < (inférieur strict), <= (inférieur
32
Syntaxe du langage
Les Constantes
33
Constantes
Exemple :
define("author","Irisi ");
Print author; // affiche ‘irisi’
define("MY_Year","2011");
print MY_Year; // affiche 2011
34
Syntaxe du langage
Mathématiques
35
Mathématiques
36
Mathématiques
Et aussi :
◼ cos, sin, tan, exp, log, min, pi, sqrt…
Nombres aléatoires :
◼ rand($x,$y) : valeur aléatoire entre x et y
37
Syntaxe du langage
Les Tableaux
38
Tableaux (I)
Un tableau peut être initialisé avec la syntaxe array.
Exemple :
$name=3;
$tab_colors = array('red', 'yellow', 'blue', 'white');
$tab = array(‘SIR', 2013, 20.5, $name);//on peut mettre n’importe quel type
39
Tableaux (II)
Parcours d’un tableau.
$tab = array(‘SIR’, ‘3’, ’FSTG’);
Exemple 1 :
$i=0;
while($i < count($tab)) { // count() retourne le nombre d’éléments
echo $tab[$i].’\n’;
$i++;
}
Exemple 2 :
foreach($tab as $elem) {
echo $elem.’’\n’’;
}
La variable $elem prend pour valeurs successives
tous les éléments du tableau $tab.
40
Tableaux (III)
Quelques fonctions:
41
Tableaux associatifs (I)
Exemple 1 :
$personne = array("Nom" => "SIR", "Prénom" => " 3ème année");
Exemple 2 :
$personne["Nom" ] = " SIR ";
$personne[" Prénom "] = " 3ème année ";
Ici la clé ‘’Nom’’ est associée la valeur ‘’SIR’’.
42
Tableaux associatifs (II)
Exemple 1 :
foreach($personne as $elem) {
echo $elem;
}
Exemple 2 :
foreach($personne as $key => $elem) {
echo ‘’$key : $elem’’;
}
Ici on accède simultanément aux clés et aux éléments.
43
Exemple
<?php
// ceci
$a = array( 'couleur' => 'rouge', 'gout' => 'sucre'
, 'forme' => 'rond', 'nom' => 'pomme', 4 // cette clé sera 0
);
// est complétement équivalent à
$a['couleur'] = 'rouge';
$a['gout'] = 'sucre';
$a['forme'] = 'rond';
$a['nom'] = 'pomme';
$a[] = 4; // cette clé sera 0
$b[] = 'a';
$b[] = 'b';
$b[] = 'c';
// va créer le tableau array( 0 => 'a' , 1 => 'b' , 2 => 'c' )
// ou plus simplement array('a' , 'b' , 'c' )
?>
44
Les tableaux
Quelques fonctions
array_count_values($tab) : retourne un tableau associatif contenant
les valeurs du tableau $tab comme clés et leurs fréquence comme
valeur
array_keys($tab) : retourne un tableau contenant les clés du tableau
associatif $tab
array_values($tab) : retourne un tableau contenant les valeurs du
tableau associatif $tab
array_search($val,$tab) : retourne la clé associée à la valeur $val
résultats:
Array
(
[1] => 2
[hello] => 2
[world] => 1
)
-------------------------------------------------------------
<?php
$array = array(0 => 100, "color" => "red");
print_r(array_keys($array));
résultats:
Array
(
[0] => 0
[1] => color
)
Array
(
[0] => 0
[1] => 3
[2] => 4
)
Array
(
[0] => color
[1] => size
)
---------------------------------------------------------------------------
<?php
$array = array("size" => "XL", "color" => "gold");
Les tableaux
Quelques fonctions
reset($tab) : place le pointeur sur le premier élément
current($tab) : retourne la valeur de l’élément courant
next($tab) : place le pointeur sur l’élément suivant
prev($tab) : place le pointeur sur l’élément précédant
each($tab) : retourne la paire clé/valeur courante et avance le
pointeur
Exemple :
<?php
$colors = array("red", "green", "blue");
$nbr = count($colors);
reset($colors);
for($i=1; $i<=$nbr; $i++) {
echo current($colors)."<br>";
next($colors)
}
?>
Les fonctions I
Exemple :
<?php
function test() {
$foo = "variable locale";
Quelques exemples :
function afficher($str1, $str2) { // passage de deux paramètres
echo ‘’$str1, $str2’’;
}
Exemple :
function f1() { // définition de la fonction f1
echo ‘’fonction f1…’’;
}
f1(); // appel de la fonction f1 définie plus haut
f2(); // appel de la fonction f2 pas encore définie
function f2() { // définition de la fonction f2
echo ‘’fonction f2’’;
}
Exemple :
function trigo($nbr) {
return array(sin($nbr), cos($nbr), tan($nbr)); // retour d’un
// tableau
}
$r = M_PI;
list($a, $b, $c) = trigo($r); /* affectation aux variables $a,$b et
$c des éléments du tableau retourné par la fonction trigo */
Fonctions dans une autre
fonction
<?php
function foo()
{
function bar()
{
echo "Je n'existe pas tant que foo() n'est pas appelé.\n";
}
}
/* Impossible d'appeler bar() ici
car il n'existe pas. */
foo();
/* Maintenant, nous pouvons appeler bar(),
car l'utilisation de foo() l'a rendu
accessible. */
bar();
?>
Valeur par défaut des arguments
de fonctions
<?php
function servir_cafe ($type = "cappuccino")
{
return "Servir un $type.\n";
}
echo servir_cafe();
echo servir_cafe(null);
echo servir_cafe("espresso");
?>
Les arguments à valeur par
défaut doivent être en premier :
valide
<?php
function faireunyaourt ($flavour, $type = "acidophil
us")
{
return "Préparer un bol de $type $flavour.\n";
}
echo faireunyaourt ("framboise"); // fonctionne co
mme voulu
?>
Les valeurs de retour
<?php
function carre ($num)
{
return $num * $num;
}
echo carre (4);
?>
Retourner un tableau d'une
fonction
<?php
function petit_nombre()
{
return array (0, 1, 2);
}
list ($zero, $un, $deux) = petit_nombre();
var_dump($zero, $un, $deux);
?>
Exemple de fonction variable
<?php
function foo() {
echo "dans foo()<br />\n";
}
function bar($arg = '')
{
echo "Dans bar(); l'argument était '$arg'.<br />\n";
}
// Ceci est une fonction détournée de echo
function echoit($string)
{
echo $string;
}
$func = 'foo';
$func(); // Appel foo()
$func = 'bar';
$func('test'); // Appel bar()
$func = 'echoit';
$func('test'); // Appel echoit()
?>
Exemple de méthode variable
<?php
class Foo
{
function Variable()
{
$name = 'Bar';
$this->$name(); // Appelle la méthode Bar()
}
function Bar()
{
echo "C'est Bar";
}
}
$foo = new Foo();
$funcname = "Variable";
$foo->$funcname(); // Appelle $foo->Variable()
?>
Fonctions récursives
<?php
function recursion($a)
{
if ($a < 20) {
echo "$a\n";
recursion($a + 1);
}
}
recursion(3);
?>
Les inclusions
On peut inclure dans un script PHP le contenu d’un autre fichier.
require insert dans le code le contenu du fichier spécifié même si ce
n’est pas du code php. ( équivalent au préprocesseur #include du
C)
Syntaxe:
require(‘’fichier.php’’);
Syntaxe:
include(‘’fichier.php’’);
Les inclusions sont très utiles lors de l’appel d’une base de donnée.
Les paramètres de connexions sont stockés sur un fichiers à part.
Exemple avec include()
vars.php
<?php
$color = 'verte';
$fruit = 'pomme';
?>
test.php
<?php
echo "Une $couleur $fruit"; // Une
include 'vars.php';
echo "Une $couleur $fruit"; // Une verte pomme
?>
Inclusion de fichiers dans une
fonction
<?php
function foo()
{
global $couleur;
include 'vars.php';
echo "Une $couleur $fruit";
}
/* vars.php est dans le contexte de foo() *
* donc $fruit n'est pas disponibles hors de *
* cette fonction. $couleur l'est, car c'est *
* une variable globale */
foo(); // Une verte pomme
echo "Une $couleur $fruit"; // Une verte
?>
La fonction require permet d’insérer le contenu d’un fichier à l’intérieur
d’un autre fichier.
Cette fonction a donc pour effet de réaliser un « copier coller » à
l’endroit où elle est écrite.
Vous comprendrez immédiatement l’intérêt de cette fonction !
En effet, vous avez désormais la possibilité d’économiser l’écriture de
code ou de texte.
La syntaxe :
<?php require("NomDuFichier"); ?>
La description :
« NomDuFichier » est le nom du fichier depuis lequel vous souhaitez
réaliser l’insertion.
Exemple
Voici le fichier entete.php :
<html>
<head>
<title> Le site INFOS PLUS</title>
</head>
<body>
<h1>Le site INFOS PLUS</h1>
<h1> Le site d'astuces à votre services...</h1>
<p>Contactez-moi au numéro de téléphone suivant :</p>
<p>INFOS PLUS PARIS : <i>01.99.01.01.01</i></p>
<p>Je vous attends ! Venez vite !</p>
<?
// insertion de l'entête
require("entete.php"); ?>
<h1>bonjour</h1>
<h1>Présentation</h1>
<p>Ce site vous propose des centaines d'astuces concernant l'utilisation de l'outil informatique.</p>
<p>C'est d'actualité, non ?</p>
<p>Pour continuer la visite, cliquez sur le lien page suivante...</p>
<p><a href="suite.php">Page suivante</a></p>
</body>
</html>
<?
// insertion de l'entête
require("entete.php"); ?>
<h1>La suite</h1>
<p>Salut !</p>
<p>Maintenant, si vous voulez continuer de visiter ce site, il va falloir me dire d'où vous êtes...</p>
<p>En fait, il n'y a pas de suite !</p>
<p><a href="index.php">Alors retourner à la page d'accueil...</a></p>
</body>
Arrêt prématuré
Exemple :
if(mysql_query($requette) == false)
die(‘’Erreur de base de données à la requête’’);
Exemple :
function mafonc() {
exit();
}
Fonctions
session_start() doit être présente sur toutes les pages qui utilisent
les variables de sessions et doit être déclarée avant tout envoie au
navigateur du client.
$_SESSION[’’nom_de_la_variable’’]
Exemple:
$_SESSION[’’etablissement’’]=’’ENSA’’;
Les fichiers I
Les fichiers en PHP sont très souvent utilisées pour stocker les
données. Les bases de données sont encore plus puissantes à ce
niveau, mais il est parfois ennuyeux de les utiliser pour accueillir
certaines formes de données. Exemple : un compteur de visite
Il existe une multitude de fonctions dédiées à l'utilisation des
fichiers.
La plus simple est la fonction file_get_contents(). Elle prend comme
paramètre le nom du fichier et elle affecte son contenu à une
variable type chaîne de caractère.
Exemple:
Le fichier test.txt contient le texte suivant: Salut, c’est un test…
Pour afficher le contenu de ce fichier sur une page web:
$str=file_get_contents(’’test.txt’’);
echo $str; // affiche: Salut, c’est un test…
Les fichiers II
Quelques fonctions:
fopen($file ,$mode) : ouverture du fichier identifié par son nom $file
et dans un mode $mode particulier, retourne un identificateur de
fichier $fp ou FALSE si échec
fclose($fp) : ferme le fichier identifié par le $fp
fgets($fp, $length) : lit une ligne de $length caractères au maximum.
Si la longueur de la ligne est inférieur à $length, lit jusqu’à la fin
de la ligne.
fputs($fp, $str) : écrit la chaîne $str dans le fichier identifié par $fp
fgetc($fp) : lit un caractère
feof($fp) : teste la fin du fichier retourne TRUE ou FALSE
file_exists($file) : indique si le fichier $file existe dans le dossier
courant. Retourne TRUE ou FALSE. Le nom du fichier peut être
une arborescence de répertoire.
Les fichiers III
<?php
$file = ‘’fichier.txt’’ ;
if( $fd = fopen($file, ‘’r’’)) { // ouverture du fichier en lecture
while ( ! feof($fd) ) { // teste la fin de fichier
$str .= fgets($fd, 1024);
/* lecture jusqu’à fin de ligne où des 1024 premiers caractères */
}
fclose ($fd); // fermeture du fichier
echo $str; // affichage
} else {
die(‘’Ouverture du fichier <b>$file</b> impossible.’’);
}
?>
Les fichiers V
Exemples :
$fp = fopen(‘’../docs/rapport.txt’’, ‘’r’’);
$fp = fopen(‘’http://www.php.net/’’,’’r’’);
$fp = fopen(’’ftp://user:password@www.fstg-marrakech.ac.ma/’’, ‘’w’’);
Dates et heures I
Quelques fonctions :
date(‘’$format’’) : retourne une chaîne de caractères contenant la
date et/ou l’heure locale au format spécifié
getdate() : retourne un tableau associatif contenant la date et
l’heure
checkdate($month, $day, $year) : vérifie la validité d’une date
mktime ($hour, $minute, $second, $month,$day, $year) : retourne le
timestamp UNIX correspondant aux arguments fournis c’est-à-dire
le nombre de secondes entre le début de l'époque UNIX (1er
Janvier 1970) et le temps spécifié
time() : retourne le timestamp UNIX de l’heure locale
Dates et heures II
seconds : secondes
minutes : minutes
hours : heures
mday : jour du mois
wday : jour de la semaine, numérique
mon : mois de l'année, numérique
year : année numérique
yday : jour de l'année numérique
weekday : jour de la semaine, textuel complet en anglais
month : mois textuel complet en anglais
Les Instructions
79
Tests : if... then... else
Si une condition est vrai alors on exécute des instructions sinon (facultatif)
on en exécute d'autre.
On peut changer de condition avec un 'elseif'.
syntaxe :
if ( condition1 ) {
Action 1
} elseif ( condition2 ) {
Action 2
}
} else {
Action 3
}
80
Tests : if... then... else
exemple :
if ($a==$b) {
echo "A est égal à B";
} elseif ($a > $b) {
echo "A est supérieur à B";
} else {
echo "A est inférieur à B";
}
81
Tests : switch... case...
default
la condition est associée à la valeur d'une variable, de plus l'instruction 'break'.
Exemple :
switch ($a) {
case $b:
echo "A est égal à B";
break;
case >$b:
echo "A est supérieur à B";
break;
default:
echo "A est inférieur à B";
break;
}
82
Boucles
while ( condition ) {
Action;
}
do {
Action;
} while (condition);
83
Boucles
$i=1;
while ($i <= 10) {
echo "- $i -";
$i++;
}
$i=1;
do {
echo "- $i -";
$i++;
} while ($i <= 10)
84
Break;Continue
Break :Cette instruction permet de sortir de n'importe quelle boucle, à n'importe quel
moment.
Continue : Cette instruction permet de ne pas exécuter le code contenu dans la
boucle et de passer à l'itération suivante.
85
Interaction avec l’usager
get, post
et
les formulaires
86
Bonnes pratiques
87
Interaction avec
l’usager
Formulaires HTML
88
Formulaires HTML
89
Formulaires HTML (Suite)
90
Formulaires HTML :
Exemple POST
exemple (fichier test.html) :
<HTML>
<FORM ACTION="test.php" METHOD=POST>
<INPUT TYPE=hidden NAME=« IGSI" VALUE="bonjour">
Nom : <INPUT TYPE=text NAME="nom">
<INPUT TYPE=submit VALUE="Envoyer">
</FORM>
</HTML>
91
Formulaires HTML :
Exemple GET
Code HTML classique :
<form action="traitement.php" method="get">
<p>
Formation: <input type="text" name="Form" /> <br />
École: <input type="text" name="ecole" />
<input type="submit" value="OK" />
</p>
</form>
92
Formulaires HTML :
Exemple GET
On récupère les données et on les affiche
(fichier traitement.php)
<?php
$formation = $_GET["Form"];
$ecole = $_GET["ecole"];
echo "Vous êtes de l'école $ecole.";
echo " <br /> ";
echo "Vous êtes en ".$formation.".";
?>
93
Autre utilité de $_GET
Adresse :
http://serveur/page.php?a=bonjour&b=bye
94
Transmission
95
Champs de formulaire :
<INPUT>
Très général: saisie de texte, ou choix dans
des listes. L'attribut TYPE vaut:
◼ TEXT pour les chaînes de caractères
◼ HIDDEN pour les champs cachés
◼ CHECKBOX pour un choix multiple
◼ RADIOBOX pour un choix exclusif
◼ SUBMIT pour déclencher l'action
◼ FILE pour transmettre un fichier
96
Champs de formulaire :
<INPUT> (Suite)
<input type= "file"> Fichier
97
Champs <SELECT>
98
Champs <SELECT>:
MULTIPLE
L'option MULTIPLE permet de sélectionner plusieurs valeurs
<HTML>
<form action=« test.php" method="post">
Nom : <input type="text" name="Master" VALUE="Master" <br />
Email : <input type="text" name="igsi"><br />
COURS : <br />
<select multiple name=« cours[]">
<option value=" BD ">BD</option>
<option value=" java ">java</option>
<option value=" php ">php</option>
</select><br />
<input type="submit" name="submit" value="me contacter!">
</form>
</HTML>
99
Champ <TEXTAREA>
100
Traitement des données en
PHP
temporaire
101
Que se passe-t-il quand on
valide ?
Le programme client transmet au programme
serveur les informations sous la forme:
$_POST["titre"]=t
$_POST["annee"]=a
103
Passage de valeurs multiples
<H1>Passage de valeurs multiples</H1>
<FORM ACTION="ExPHP.php"
METHOD=POST">
Titre : <INPUT TYPE=TEXT SIZE=20 NAME="titre" >
<TABLE><TR><TH>Prénom</TH><TH>Nom</TH></TR>
<TR><TD><INPUT TYPE=TEXT SIZE=30 NAME="prenom[]">
<TD><INPUT TYPE=TEXT SIZE=30 NAME="nom[]">
<TR><TD><INPUT TYPE=TEXT SIZE=30 NAME="prenom[]">
<TD><INPUT TYPE=TEXT SIZE=30 NAME="nom[]">
<TR><TD><INPUT TYPE=TEXT SIZE=30 NAME="prenom[]">
<TD><INPUT TYPE=TEXT SIZE=30 NAME="nom[]">
</TABLE>
<H1>Votre choix</H1>
<INPUT TYPE=SUBMIT VALUE='Valider'>
<INPUT TYPE=RESET VALUE='Annuler'>
</FORM>
104
Que se passe-t-il quand on
valide ?
Le programme client transmet au programme serveur les infos sous la forme:
titre=t&prenom[]=p1&nom[]=n1&prenom[]=p2&nom[]=n2&...
Pour le script PHP, cela donne:
<?php
$titre = $_POST['titre'];
$prenom=$_POST['prenom'];
$nom=$_POST['nom'];
echo "Pour le film $titre j'ai reçu les acteurs suivants :<P>\n";
?>
◼ => on crée deux tableaux PHP !
105
Ce que fait le script
107
Les Fonctions
108
Fonction : Déclaration
❑ Déclaration :
❑ La syntaxe de déclaration s’appuie sur le mot clé function.
❑ Suivi du nom de la fonction, puis de parenthèses (obligatoires) destinées à
accueillir les éventuels paramètres à passer à la fonction.
exemple 1:
function bonjour( ) {
echo « Bonjour ! » ;
}
exemple 2:
function bonjour2( ) {
return « Bonjour !» ;
}
109
Déclaration, paramètres,
valeurs de retour
110
Ainsi cette fonction peut être
appelée de deux façons différentes
<?php
// Passage des deux paramètres
hello("cher ami", "Bienvenue"); // affiche "Bienvenue
cher ami"
// Utilisation de la valeur par défaut du deuxième
paramètre
hello("cher ami"); // affiche « Salam cher ami"
?>
Travailler sur des variables
Variables globales ou
variables locales.
Global
117
Retourner plusieurs variables
Lorsque vous souhaitez qu'une fonction retourne plusieurs valeurs, le plus
simple est d'utiliser un
tableau.
<?php
function nom_fonction()
{
.....
return array( $variable1, $variable2, $variable3 );
// on retourne les valeurs voulues dans un tableau
}
$retour = nom_fonction();
echo "$retour[0] - $retour[1] - $retour[2]";
?>
La récursivité
Les fonctions récursives sont des fonctions qui s'appellent elles-mêmes. Ce type de
fonction se révèle
indispensable pour parcourir une arborescence par exemple.
Voici un exemple.
<?php
function fonction_recursive($n=0)
{
$n++;
echo "$n <br>";
if($n < 10){ // si n est inférieur à 10 on continue
fonction_recursive($n);
}
}
fonction_recursive(); // affiche les nb de 1 à 10
?>
Fichiers (I)
Exemples :
$fp = fopen(‘’../docs/faq.txt’’, ‘’r’’);
$fp = fopen(‘’http://www.php.net/’’,’’r’’);
$fp = fopen(’’ftp://user:password@fstg.ma/’’, ‘’w’’);
Les modes d’ouverture : 'r' (lecture seule), 'r+' (lecture et écriture), 'w'
(création et écriture seule), ‘w+’ (création et lecture/écriture),
'a‘(création et écriture seule ; place le pointeur de fichier à la fin du
fichier), 'a+' (création et lecture/écriture ; place le pointeur de fichier à
la fin du fichier)
121
Fichiers (II)
122
PHP - La gestion des fichiers
textes en php
<html>
<body>
<?php
$f=fopen("exemple.txt","r");
?>
</body>
</html>
Si la fonction fopen() echoue lors de l'ouverture du fichier, celle ci
retourne 0
Exemple :
L'exemple ci dessous génère un message si la fonction fopen() est incapable
d'ouvrir le fichier spécifié.
<html>
<body>
<?php
if (!($f=fopen("exemple.txt","r")))
exit("Unable to open file!");
?>
</body>
</html>
PHP Fichier - Fermer un fichier
Syntaxe :
<?php
fclose($f);
?>
PHP Fichier - Écrire dans un
fichier.
<?php
if (feof($f))
echo 'Fin du fichier';
?>
PHP Fichier - Comment lire
caractère par caractère ?
<?php
if (!($f=fopen("exemple.txt","r")))
exit("Impossible d'ouvrir le fichier.");
while (!feof($f))
{
$texte=fgetc($f);
echo $texte;
}
fclose($f);
?>
La Messagerie
132
Mail (I)
Syntaxe :
mail($recipient, $subject, $message[,
$headers, $params]);
Exemple :
$message = "Comment Ecrire du code PhP"
mail("vous@fstg.ma", ‘’Aide sur PHP’’, $message);
133
Mail (II)
134
Accès aux dossiers
135
Accès aux dossiers (I)
136
Accès aux dossiers (II)
Exemple 1:
<?php
if ($dir = @opendir(‘.’)) { // ouverture du dossier
while($file = readdir($dir)) { // lecture d’une entrée
echo "$file<br />"; // affichage du nom de fichier
}
closedir($dir); // fermeture du dossier
}
?>
$dir est un pointeur vers la ressource dossier
$file est une chaîne de caractères qui prend pour valeur chacun
des noms de fichiers retournés par readdir()
137
Accès aux dossiers (III)
Constructeur :
dir($str) : retourne un objet dir et ouvre le dossier $str
138
Accès aux dossiers (IV)
Exemple 2 :
<?php
$d = dir(‘.’); // ouverture du dossier courant
echo ‘’Pointeur: ‘’.$d->handle.’’<br />’’;
echo ‘’Chemin: ‘’.$d->path.’’<br />’’;
while($entree = $d->read()) { // lecture d’une entrée
echo $entree.’’<br />’’;
}
$d->close(); // fermeture du dossier
?>
Cet exemple est équivalent au précédent. Ils listent tous
les deux les fichiers et sous répertoires du dossier
courant.
139
Dates et heures
140
Dates et heures (I)
Les fonctions de dates et heures sont incontournables sur Internet et sont indispensables pour
la conversion en français des dates fournies par la base de données MySQL qui les code au
format anglophone (YYYY-DD-MM hh:mm:ss).
Quelques fonctions :
✓date(‘’$format’’) : retourne une chaîne de caractères contenant la date et/ou l’heure
locale au format spécifié
✓getdate() : retourne un tableau associatif contenant la date et l’heure
✓checkdate($month, $day, $year) : vérifie la validité d’une date
✓mktime ($hour, $minute, $second, $month,$day, $year) :
retourne le timestamp UNIX correspondant aux arguments fournis
c’est-à-dire le nombre de secondes entre le début de l'époque UNIX
(1er Janvier 1970) et le temps spécifié
✓time() : retourne le timestamp UNIX de l’heure locale
141
Dates et heures (III)
Les formats pour date :
d Jour du mois sur deux chiffres [01..31] j Jour du mois sans les zéros initiaux
l Jour de la semaine textuel en version longue et en anglais
D Jour de la semaine textuel en trois lettres et en anglais
w Jour de la semaine numérique [0..6] (0: dimanche)
z Jour de l'année [0..365]
m Mois de l'année sur deux chiffres [01..12] n Mois sans les zéros initiaux
F Mois textuel en version longue et en anglais
M Mois textuel en trois lettres
Y Année sur 4 chiffres y Année sur 2 chiffres
h Heure au format 12h [01..12] g Heure au format 12h sans les zéros initiaux
H Heure au format 24h [00..23] G Heure au format 24h sans les zéros initiaux
i Minutes [00..59] s Secondes [00.59]
a am ou pm A AM ou PM
L Booléen pour savoir si l'année est bissextile (1) ou pas (0)
S Suffixe ordinal anglais d'un nombre (ex: nd pour 2)
t Nombre de jour dans le mois donné [28..31]
U Secondes depuis une époque Z Décalage horaire en secondes [-43200..43200] 142
Dates et heures (IV)
143
Dates et heures (II)
Exemple 1 :
echo date(''Y-m-d H:i:s'');
/* affiche la date au format MySQL :‘ 2002-09-27 20:30:29’ */
Exemple 2 :
if(checkdate(15-04-2005))
echo ‘’c’est le grand oral!!! ’’;
Exemple 3 :
$ aujourdhui = getdate();
$mois =$aujourdhui['mon'];
$ jour =$aujourdhui['mday'];
$annee =$aujourdhui['year'];
echo ''$jour/$mois/$annee''; // affiche ‘29/4/2006’
144