Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
1
Modèle
requête
réponse
appel de la page
Base de Script
données extraction
exécution
Document
de données PHP Html
MySQL
2
Modèle
3
Histoire du PHP
Il a été créé en 1994 par Rasmus Lerdorf pour les besoins des pages
web personnelles (livre d’or, compteurs, etc.). A l’époque, PHP
signifiait Personnal Home Page.
C’est un langage incrusté au HTML et interprété (PHP3) ou compilé
(PHP4) côté serveur. Il dérive du C et du Perl dont il reprend la
syntaxe.
Il est extensible grâce à de nombreux modules et son code source est
ouvert. Comme il supporte tous les standards du web et qu’il est
gratuit.
En 1997, PHP devient un projet collectif et son interpréteur est
réécrit par “Zeev Suraski et Andi Gutmans ” pour donner la version
3 qui s’appelle PHP Hypertext Preprocessor).
4
Intégration d’un script dans une page
Les pages web sont au format html.
Les pages web dynamiques générées avec PHP sont au format php.
Le code source php est directement insérer dans le fichier html grâce
au conteneur :
<?php … ?>
Exemple:
<html>
<body>
<?php
echo ’’Bonjour’’;
?>
</body>
</html>
5
Exemple de script
<html>
<body>
<h1>Mon premier script</h1>
<?php echo “Bonjour\n“ ; ?>
</body>
</html>
Résultat affiché par le navigateur :
6
Commentaires
7
Variables, constantes et types
10
Variables, constantes et types
12
Contrôle d’état d’une variable
La portée d’une variable est limitée au bloc dans lequel elle a été crée.
Une variable locale à une fonction n’est pas connue dans le reste du
programme.
Une variable crée dans un bloc n’est pas connue dans les autres blocs,
mêmes supérieurs.
Opérateurs d’assignement :
= (affectation), *= ($x*=$y équivalent à $x=$x*$y), /=, +=, -=, %=
Opérateurs logiques :
and, && (et), or, || (ou), xor (ou exclusif), ! (non)
14
Variables, constantes et types
Opérateurs arithmétiques :
Opérateur description
+ addition
- soustraction
* Multiplication
/ Division
% Modulo
++ et -- Décrémentation et
incrémentation (Ces
deux derniers peuvent
être pré ou post fixés
15
Les opérateurs de comparaison
Opérateur Description
== Test l’égalité de deux valeurs
$a=345; $b=“345” ou $b=“345 elements”
$a= =$b; TRUE
!= ou <> Test l’inégalité de deux valeurs
=== Test l’identité des valeurs et des types de deux
expressions.
$a=345; $b=“345”; $a= = =$b; False
!== Test la non-identité de deux expression
16
Les operateurs logiques
Opérateur Description
OR Test si l’un au mois des opérandes à la
valeur TRUE.
|| Equivaut à l’opérateur OR mais n’a pas la
même priorité.
XOR Test si l’un et un seul des opérandes à la
valeur TRUE.
AND Test si les eux opérandes en la même valeur
TRUE
&& Equivaut à l’opérateur AND mais n’ a pas la
même priorité
! Operateur unaire de négation, qui inverse la
valeur de l’opérande.
17
Variables, constantes et types
Opérateurs arithmétiques :
18
Variables, constantes et types
19
Variables, constantes et types
Les constantes sont manipulés à l’aide de la syntaxe define:
define (‘’constante’’, ‘’valeur’’);
Exemple 1 :
define(‘’author ‘’, ‘’ Foobar‘’);
echo author; // affiche ‘Foobar’
Exemple 2 :
define(“MY_YEAR”,1980);
echo MY_YEAR; // affiche 1980
Exemple 3 :
Define ("font", "<FONT size=4 color=#FF0000><B>")
21
Les Structures de contrôle
<!DOCTYPE html>
<html>
<body>
Structures conditionnelles <?php
(même syntaxe qu’en langage C) : $t = date("H");
echo "<p>The hour (of the server) is " . $t;
echo ", and will give the following
message:</p>";
if( ... ) {
… if ($t < "10") {
echo "Have a good morning!";
} elseif {
} elseif ($t < "20") {
… echo "Have a good day!";
} else { } else {
… echo "Have a good night!";
}
} ?>
</body>
22
</html>
Les Structures de contrôle
switch-case
<?php
$color = "red";
switch ($color) {
case "red":
echo "Your favorite color is red!";
break;
switch( … ) { case "blue":
case … : { … } echo "Your favorite color is blue!";
break; break;
… case "green":
default : { … } echo "Your favorite color is green!";
} break;
default:
echo "Your favorite color is neither
red, blue, nor green!";
}
?>
23
Les Structures de contrôle
for( … ; … ; … ) {
…
}
while( … ) {
…
}
do {
…
} while( … );
24
Les Structures de contrôle
--------------------------------- FOREACH----------------------------------
foreach($tableau as $valeur)
{
// bloc utilisant la valeur de l’élément courant
}
25
Structures de contrôle (FOR)
html>
Structures de boucle (même syntaxe <head>
qu’en langage C) : <title>Titres</title>
</head>
<body>
<?php
<?php
for ($x=0; $x<=50; $x=$x+5) { for ($ x=1; $x<=6; $x=$x+1) {
echo '<p>variable $x is now = ' . $x . echo "<h" . $x . ">Heading levels</h" . $x .
'</p>'; ">";
} }
?>
?>
</body>
</html>
Sortie:
. 1
This text is repeated 50 times 2
This text is repeated 50 times
pow($x,$y) : x à la puissance y
Quelques constantes :
M_PI : valeur de pi (3.14159265358979323846)
28
Chaînes de caractères
Une variable chaîne de caractères n’est pas limitée en nombre de caractères.
Elle est toujours délimitée par des simples quotes ou des doubles quotes.
Si vous utilisez les doubles quotes pour délimiter une chaîne, alors les
variables et les caractères contenus dans cette chaîne sont évalués.
Ce n’est pas le cas si vous utilisez les simples quotes.
Exemples :
<? php
$Nom=“saad”;
echo “Bonjour $Nom”; // affiche Bonjour saad, la variable $Nom
est évaluée
echo ‘Bonjour $Nom’; // affiche Bonjour $Nom , la variable $Nom
n’est pas évaluée
?>
29
Chaînes de caractères
\n nouvelle ligne
\r retour à la ligne
\t tabulation horizontale
\\ antislash
\$ et \ “ caractère dollars et double quotte
30
Chaînes de caractères
?>
31
Chaînes de caractères
$code="7508”;
if ( strlen($code) !=5 ) echo “code erroné !”
32
Chaînes de caractères
Comparaison de chaines:
Les opérateurs de comparaison usuels sont utilisables avec les chaînes. Cela
inclus bien sur les operateurs d’égalité (= =) et d’identité (= = =), ce dernier ne
permettant d’obtenir la valeur TRUE dans une expression conditionnelle que si
les deux opérandes ont non seulement la même valeur mais aussi le même type
Pour comparer des chaînes et obtenir leur ordre alphabétique, php dispose de
deux fonctions:
Int strcmp( string $ch1, string $ch2)
Int strcasecmp( string $ch1, string $ch2)
Leur fonctionnement est identique, mais la première fonction est sensible à la
casse alors que la seconde ne l’est pas.
Elle retourne toute les deux un nombre négatif(généralement -1) si $ch1 est
inférieure à $ch2, un nombre positif(généralement 1) dans le cas contraire et 0
en cas d’égalité.
33
Fonction: création
Exemple1
<?php
function DireBonjour($nom)
{
echo 'Bonjour ' . $nom . ' ! <br >';
}
DireBonjour('Marie');
DireBonjour('Patrice');
DireBonjour('Edouard');
DireBonjour('Pascale');
DireBonjour('François');
DireBonjour('Benoît');
DireBonjour('Père Noël');
?>
34
Fonction: création
Exemple2
<?php
// Ci-dessous, la fonction qui calcule le volume du cône: syntaxe déclaration
function VolumeCone($rayon, $hauteur)
{
// calcul du volume
$volume = $rayon * $rayon * 3.14 * $hauteur * (1/3);
// utilisation de la fonction :
$volume = VolumeCone(3, 1);
echo 'Le volume d\'un cône de rayon 3 et de hauteur 1 est de ' . $volume;
echo 'Le volume d\'un cône de rayon 3 et de hauteur 1 est de ' . $VolumeCone(5, 2);
?> 35
Les Tableaux
La fonction array( ) permet de créer de manière rapide des tableaux
indicés ou associatifs. C’est elle qui sera le plus souvent utilisé pour
la création de tableaux.
La façon la plus élémentaire de créer un tableau indicé consiste à
définir individuellement une valeur pour chacun des ces éléments,
de la manière suivante:
$tab[n]=valeur;
ou n est un indice entier quelconque, et « valeur » un scalaire ou une
variable de type integer, double, boolean, string et array.
Pour créer un tableau composé de plusieurs éléments en une seule
opération, vous disposez de la fonction array().
$tab=array( valeur0, valeur1, …, valeurN)
36
Les Tableaux
Exemple Tabeaux indicés
1° méthode
2° méthode
3° méthode
37
Les Tableaux
Les tableaux associatifs:
La même fonction array( ) permet aussi de créer rapidement un tableau
associatif en définissant pour chacun de ses éléments une clé et une
valeur.
La syntaxe :
$tabasso=array(“cléA” =>valeurA, “cléB” =>valeurB,… “cléZ” =>valeurZ)
Chaque clé est une chaine de caractère délimitée par des guillemets.
Pour lire la “valeurA” vous écrivez $tabasso[“cléA”].
Un tableau associatif est appelé aussi dictionnaire ou hashtable. On associe
à chacun de ses éléments une clé dont la valeur est de type chaîne de
caractères.
L’initialisation d’un tableau associatif est similaire à celle d’un tableau
normal.
Exemple 1 :
$personne = array(‘’Nom’’ => ‘’Alami’’, ‘’Prenom’’ => ‘’Saad’’);
38
Les Tableaux
1° méthode
2° méthode
39
Les Tableaux
40
Exemple
Volvo: In stock: 22, sold: 18.
BMW: In stock: 15, sold: 13.
Saab: In stock: 5, sold: 2.
Land Rover: In stock: 17, sold: 15.
<?php
$cars = array
(
array("Volvo",22,18),
array("BMW",15,13),
array("Saab",5,2),
array("Land Rover",17,15)
);
43
Exemple
Passer en revue un tableau avec each()
<?php
$fruit = array('a' => 'apple', 'b' => 'banana', 'c' => 'cranberry');
reset($fruit);
while (list($key, $val) = each($fruit)) {
echo "$key => $val\n";
}
?>
Retourne la paire clé/valeur courante du tableau array
a => apple
b => banana
c => cranberry
44
Les Tableaux
L’instruction foreach ( ):
est très efficace pour parcourir les tableaux associatifs mais fonctionne
également pour les tableaux indicé.
45
Les Tableaux
Exemple de l’instruction foreach ( ):
46
Les Tableaux
Exemple de l’instruction foreach ( ):
47
Les Tableaux
Quelques fonctions:
count($tab), sizeof($tab) : retournent le nombre d’éléments du tableau
in_array($var,$tab) : dit si la valeur de $var existe dans le tableau $tab
list($var1,$var2…) : transforme une liste de variables en tableau
range($i,$j) : retourne un tableau contenant un intervalle de valeurs
shuffle($tab) : mélange les éléments d’un tableau
sort($tab) : trie les éléments du tableau
rsort($tab) : trie inverse les éléments du tableau
implode($str,$tab): retournent une chaîne de caractères contenant les
éléments du tableau $tab joints par la chaîne de jointure $str.
explode($delim,$str) : retourne un tableau dont les éléments résultent du
hachage de la chaîne $str par le délimiteur $delim
array_merge($tab1,$tab2,$tab3…) : concatène les tableaux passés en
arguments
array_rand($tab) : retourne un élément du tableau au hasard
48
Les Tableaux
Quelques fonctions :
array_count_values($tab) : retourne un tableau contenant les valeurs du
tableau $tab comme clés et leurs fréquence comme valeur (utile pour
évaluer les redondances)
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
50
array_key_exists
<?php
$coordonnees = array (
'prenom' => 'François',
'nom' => 'Dupont',
'adresse' => '3 Rue du Paradis',
'ville' => 'Marseille');
if (array_key_exists('nom', $coordonnees))
{
echo 'La clé "nom" se trouve dans les coordonnées !';
}
if (array_key_exists('pays', $coordonnees))
{
echo 'La clé "pays" se trouve dans les coordonnées !';
}
?>
51
Vérifier si une valeur existe dans l'array : in_array
<?php
$fruits = array ('Banane', 'Pomme', 'Poire', 'Cerise', 'Fraise',
'Framboise');
if (in_array('Myrtille', $fruits))
{
echo 'La valeur "Myrtille" se trouve dans les fruits !';
}
if (in_array('Cerise', $fruits))
{
echo 'La valeur "Cerise" se trouve dans les fruits !';
}
?>
52
Récupérer la clé d'une valeur dans l'array : array_search
<?php
$fruits = array ('Banane', 'Pomme', 'Poire', 'Cerise', 'Fraise',
'Framboise');
53
Communication avec PHP
index.php (l'accueil) ;
bonjour.php.
nom : Dupont ;
prenom : Jean.
54
Communication avec PHP
55
Communication avec PHP
Nom Valeur
$_GET['nom’] Dupont
$_GET['prenom’] Jean
56
http://localhost/tpdut2/bonjour.php?nom=Dupont&prenom=Jean
<head>
<title>Envoi de paramètres dans l'URL</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<p><a href="bonjour.php?nom=Dupont&prenom=Jean">Dis-moi bonjour !
</a></p>
</body>
<head>
<title>Réception de paramètres dans l'URL</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
</body>
Les formulaires introduits dans le HTML depuis plus anciennes versions sont
l’élément essentiel qui permet l’interactivité entre un site et ses visiteurs.
Tout échange entre visiteur et serveur passe par un formulaire, dans lequel
l’utilisateur peut saisir textes ou mot de passe, opérer des choix grâce à des
boutons radio, des cases à cocher ou des listes de sélection, envoyer ses
propres fichiers depuis le poste client.
58
Les Formulaires
59
Les Formulaires
Valeurs uniques:
Les valeurs uniques proviennent des champs de formulaire
dans lesquels l’utilisateur ne peut entrer qu’une valeur, un
texte par exemple, ou ne peut faire qu’un seul choix
(bouton radio, liste de sélection à choix unique).
Ces valeurs sont contenues sur le serveur dans des tableaux
associatifs dits super-globaux appelés $_POST et $_GET,
selon la méthode choisie.
Les clés de ces tableaux sont les noms associes aux champs
par l’attribut name
60
Les Formulaires
formulaire.php
Cas de la méthode POST
<html>
<head>
<title>formulaire traité par php</title>
</head>
<body>
<form action=“form.php ” method="post" >
<fieldset>
<legend><b>Infos</b></legend>
nom: <input type="text" name="nom" size="40"/> </br>
Débutant: <input type="radio" name="niveau" value="débutant"/>
Initié: <input type="radio" name="niveau" value="initié" /> </br>
<input type="reset" value="effacer">
<input type="submit" value="envoyer">
</fieldset>
</form>
61
Les Formulaires
suite
form.php
<?php
if(isset($_POST["nom"]) && isset($_POST["niveau"]))
{ echo"<h2> Bonjour ".$_POST["nom"]." vous êtes ".$_POST["niveau"]."
en PHP</h2>";}
?>
62
Les Formulaires
<?php
en PHP</h2>";}
?>
Contrairement à ce qui ce passe avec la méthode POST, vous constatez que lors
du clic sur le bouton d’envoi l’adresse de la page cible désignée par l’attribut
action est suivi par le caractère ’ ? ’ Puis le nom de chaque champ et la valeur qui
y associée. 63
Les Formulaires
Les valeurs multiples
Dans tous les cas, ce n’est pas une valeur scalaire mais un tableau qui
est récupéré côté serveur, il faut pour cela faire suivre le nom du
composant de crochets, comme pour créer une variable de type array.
64
<form action="checkbox.php">
<input type="hidden" name="envoi" value="yes">
<input type="text" name="voiture"><br>
<input type="checkbox" name="options[]" value="Injection au
méthane"> Injection au méthane<br>
<input type="checkbox" name="options[]" value="Trois roues de
secours"> Trois roues de secours<br>
<input type="checkbox" name="options[]" value="Miroir de courtoisie
dans le coffre"> Miroir de courtoisie dans le coffre<br>
<input type="checkbox" name="options[]" value="Ventilation des rotules
(côté conducteur)"> Ventilation des rotules côtés conducteur)<br>
1<input type="checkbox" name="options[]" value="Kit James-Bond
"> Kit James-Bond <br>
<input type="submit">
</form>
65
<?php
$envoi = $_GET['envoi']; //aiguilleur
$voiture = $_GET['voiture']; //Nom de la voiture
$options = $_GET['options']; //Contenu des cases à coche
if ($envoi == 'yes') {
$options_text = implode(', ',$options);
echo '<h1>L\'auto de vos rêves "'.$voiture.'":</h1>';
echo '<p>options:<br><br>'.$options_text.'</p>';
}
?>
66
67
miniProjet-TD-TP
mini-projet
TD-TP: PHP-mysql
68