Contexte
Rappel : XHTML
Exemple : Corps
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Exemple de fichier XHTML</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<p>Hello world !</p>
</body>
</html>
Définition : Langage à balises
HTML est un langage à balises : il se fonde sur le mélange entre du contenu et des balises permettant de caractériser ce contenu. HTML utilise le formalisme SGML pour définir les balises et combinaisons de balises autorisées.
Exemple : Extrait de code HTML
<p>Ceci est un contenu, caractérisé par des <b>balises</b></p>
Syntaxe : Structure générale
<html xmlns="http://www.w3.org/1999/xhtml">
<head> ... </head>
<body> ... </body>
</html>
Syntaxe : Entête
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>...</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
</head>
<body> ... </body>
</html>
Syntaxe : Corps
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>...</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<h1>...</h1>
<h2>...</h2>
<p>...</p>
</body>
</html>
Syntaxe :
<p>Un paragraphe de texte</p>
<p>Paragraphe contenant du texte, mot <b>gras</g> ou <i>italique</i>.</p>
<p><a href="page02.html">Un lien</a> vers une autre page</p>
<img src="img.png" alt="une image"/>
<h1>Titre de niveau 1</h1>
<h2>Titre de niveau 2</h2>
<h3>Titre de niveau 3</h3>
<table border="1">
<tr><th>Titre colonne 1 </th><th>Titre colonne 2 </th><th>...</th></tr>
<tr><td>Ligne 1 colonne 1</td><td>Ligne 1 colonne 2</td><td>...</td></tr>
<tr><td>Ligne 2 colonne 1</td><td>Ligne 2 colonne 2</td><td>...</td></tr>
</table>
<ul>
<li>Item de liste à puce</li>
<li>Item de liste à puce</li>
</ul>
<ol>
<li>Item de liste à ordonnée</li>
<li>Item de liste à ordonnée</li>
</ol>
Appliquer la notion : Population
Soit la page HTML suivante, visualisée sous le navigateur web Firefox.
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Exercice</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
</head>
<body>
<h1>Population par département</h1>
<table border="1">
<tr><th>Numéro</th><th>Nom</th><th>Population</th></tr>
<tr><td>01</td><td>Ain</td><td>529378</td></tr>
<tr><td>02</td><td>Aisne</td><td>552320</td></tr>
<tr><td>...</td><td>...</td><td>...</td></tr>
</table>
<ul>
<li>Département le plus peuplé : <b>Paris</b> (<i>2147857</i>)</li>
<li>Département le moins peuplé : <b>Hautes-Alpes</b> (<i>126636</i>)</li>
</ul>
</body>
</html>
Créez le fichier HTML source de cette page sur votre ordinateur en utilisant un éditeur de texte, comme notepad++
sous Windows ou gedit
sous Linux.
Déposez le fichier sur un VPS disposant d'un serveur installé afin qu'il soit accessible à l'adresse http://mon.vps.org/samples/pop.html
.
Présentation et installation d'un serveur PHP
PHP est un langage interprété (un langage de script) exécuté du côté serveur (comme les scripts CGI, ASP, ...) et non du côté client (un script écrit en JavaScript ou une applet Java s'exécute au contraire sur l'ordinateur où se trouve le navigateur). La syntaxe du langage provient de celles du langage C, du Perl et de Java.
Ses principaux atouts sont :
La gratuité et la disponibilité du code source (PHP est distribué sous licence GNU GPL)
La simplicité d'écriture de scripts
La possibilité d'inclure le script PHP au sein d'une page HTML (contrairement aux scripts CGi, pour lesquels il faut écrire des lignes de code pour afficher chaque ligne en langage HTML)
La simplicité d'interfaçage avec des bases de données (de nombreux SGBD sont supportés, le plus utilisé avec ce langage est MySQL).
L'intégration au sein de nombreux serveurs web (Apache...)
Exemple : SGBD supportés par PHP
MySQL
Oracle
PostgreSQL
...
Appliquer la notion
Créez un fichier test.php
sur un VPS disposant d'un serveur PHP utilisant la fonction phpinfo
pour renvoyer les informations techniques sur le module PHP installé sur le serveur.
Fonctionnement d'un serveur PHP
L'interprétation du code par le serveur
Le serveur reconnaît qu'il s'agit d'un fichier PHP
Il lit le fichier PHP
Dès que le serveur rencontre une balise indiquant que les lignes suivantes sont du code PHP, il "passe" en mode PHP, ce qui signifie qu'il ne lit plus les instructions: il les exécute.
Lorsque le serveur rencontre une instruction, il la transmet à l'interpréteur
L'interpréteur exécute l'instruction puis envoie les sorties éventuelles au serveur
A la fin du script, le serveur transmet le résultat au client (le navigateur)
Remarque : Code PHP et clients Web
Un script PHP est interprété par le serveur, les utilisateurs ne peuvent donc pas voir le code source.
Le code PHP stocké sur le serveur n'est donc jamais visible directement par le client puisque dès qu'il en demande l'accès, le serveur l'interprète ! De cette façon aucune modification n'est à apporter sur les navigateurs...
Exemple : Hello world
<?php
echo "Hello world";
?>
Syntaxe :
Pour que le script soit interprété par le serveur deux conditions sont nécessaires :
Le fichier contenant le code doit avoir l'extension .php et non .html (selon la configuration du serveur Web)
Le code PHP contenu dans le code HTML doit être délimité par les balises "<?php" et "?>"
Exercice
Créer un fichier hello.php
permettant d'afficher le texte Hello World !.
<?php
echo "Hello world !";
?>
Envoi de texte au navigateur par le serveur PHP
Syntaxe :
echo Expression;
Implantation du code PHP au sein du code HTML
Fondamental : L'importance de l'implantation du code PHP au sein du code HTML
Exemple : Hello world
<html>
<head><title>Exemple</title></head>
<body>
<?php
echo "Hello world";
?>
</body>
</html>
Exercice
Transformer le fichier PHP suivant pour qu'il renvoie une page HTML.
<?php
echo "Hello world !";
?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Hello PHP !</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<p>
<?php
echo 'Hello world !';
?>
</p>
</body>
</html>
Syntaxe PHP
Fondamental : Manuel PHP en ligne
Exemple :
<?php
$i=0 ;
while($i<6) {
echo $i ;
$i=rand(1,6) ;
}
?>
Attention : Généralités
Une instruction se termine par un
;
Les espaces, retours chariot et tabulation ne sont pas pris en compte par l'interpréteur
Les commentaires sont écrits entre les délimiteurs
/*
et*/
ou//
sur une seule ligne.Le langage est case-sensitive (sauf pour les fonctions).
Complément : IDE
Eclipse PDT (PHP Development Tools)
Zend Studio
Variables en PHP
Les variables ne sont pas déclarées
Les variables commencent pas un $
Les variables ne sont pas typées
Les variables en langage PHP peuvent être de trois types :
Scalaires (entiers, chaîne, réels)
Tableaux (un tableau pouvant être multidimensionnel et stocker des scalaires de types différents)
Tableaux associatifs (indexés par des chaînes)
Exemple :
$Entier=1;
$Reel=1.0;
$Chaine="1";
$Tableau[0]=1
$Tableau[1]="1"
$TableauMulti[0][0]="1.0"
$TableauAssoc[Age]=18
Complément : isset()
if (isset($var)) {
echo $var;
}
Complément :
Structures de contrôle en PHP
Syntaxe : Alternative IF
if (condition réalisée) {
liste d'instructions
}
elseif (autre condition réalisée) {
autre série d'instructions
}
...
else (dernière condition réalisée) {
série d'instructions
}
Syntaxe : Boucle FOR
for (compteur; condition; modification du compteur) {
liste d'instructions
}
Syntaxe : Boucle WHILE
while (condition réalisée) {
liste d'instructions
}
Deux fois deux
Écrire un programme PHP qui permet d'afficher la table de multiplication des 2 en HTML.
Penser à implanter le code PHP dans le code HTML
On utilisera une boucle for.
<?php
for ($i=1; $i<10; $i++) {
echo '<p>';
echo "2 x $i = ", 2*$i;
echo '</p>';
}
?>
Auto-évaluation
Exercice final
Quiz - Culture
...
A
B
Quiz - Méthode
...
A
B
Quiz - Code
...
A
B
Quiz - Culture
...
A
B
Quiz - Méthode
...
A
B
Quiz - Code
...
A
B
Défi
...