Vous êtes sur la page 1sur 5

O. Auzende

Ingénierie Web

PHP

PHP est un langage destiné à l’écriture de scripts dans une page Web dont l’extension est alors .PHP. Le code des scripts est exécuté par le serveur à chaque affichage de la page. Les scripts sont alors remplacés par le résultat de leur exécution.

Pour faire exécuter des pages PHP, il faut disposer d’Apache (sous Linux) ou de easyPHP (sous Windows). A noter : easyPHP est un serveur de développement, pas un serveur de déploiement. On place les pages dans un sous-dossier de C:\Program Files\easyPHP…\www L’appel se fait par http://localhost/nom-du-dossier/page.php.

Balises PHP

Le code PHP est encadré par des balises PHP. Il y a différents styles de balise PHP :

o

Les balises par défaut : <?php

Code PHP

?>

o

Les balises d’ouverture courtes 1

:

<?

Code PHP

?>

o

Les balises <script>:

<SCRIPT LANGUAGE="php">

Code

PHP

</SCRIPT>

Quand l’interpréteur PHP rencontre la balise d’ouverture, il interprète tous les caractères rencontrés jusqu’à ce qu’il trouve la balise de fermeture. Le script est alors exécuté et remplacé par le résultat qu’il produit. Un affichage est provoqué par la commande echo.

Variables, formatage des données

o

Les variables du langage sont représentées par un identificateur précédé du signe $, quel que soit le type de la variable : nombre (valeur numérique), chaîne de caractères, tableau, objet composite.

o

Pour créer des variables avec PHP, il suffit d’en faire usage. Il est donc inutile de les déclarer.

<html>

<body>

<?php

$a = 58 ; $b = 97 ; $som = $a+$b; $prod = $a*$b ; echo "a = $a"; echo "<br />"; echo "b = $b"; echo "<br />"; echo "La somme est : $som"; echo "<br />"; echo "Le produit est : $prod ";

</html>

</body>

?>

Les chaînes de formatage utilisées avec la fonction printf permettent de simplifier les affichages :

<html>

<body>

<?php

$a = 58 ; $b = 97 ; $som = $a+$b; $prod = $a*$b ; printf("a = %s<br />b = %s<br />La somme est : %s<br />Le produit est :

</html>

</body>

?>

%s", $a, $b, $som, $prod);

1 Attention : le serveur Apache doit être configuré pour accepter les balises courtes. Dans le doute, utiliser les balises par défaut.

1

o

Si la variable $x représente un tableau avec un index numérique, on accède aux éléments individuels par la spécification $x[0], $x[1], etc. Les indices commencent à 0 ou à 1 (au choix).

o

Si la variable $x représente un tableau avec un index associatif (un type énuméré tel que ("lundi", "mardi", "mercredi", etc.), on accède aux éléments individuels par la spécification $x["lundi"], $x["mardi"], etc.

o

Les tableaux PHP peuvent avoir un index mixte (associatif et numérique). Ainsi, les éléments $x["lundi"] et $x[1] peuvent appartenir au même tableau. Exemple :

$tab[1]="lundi"; $tab[2]="mardi"; $tab[3]="mercredi"; $tab[4]="jeudi"; $tab[5]="vendredi"; $tab[6]="samedi"; $tab[7]="dimanche";

$tab["lundi"]="monday"; $tab["mardi"]="tuesday"; $tab["mercredi"]="wednesday"; $tab["jeudi"]="thursday"; $tab["vendredi"]="friday"; $tab["samedi"]="saturday"; $tab["dimanche"]="sunday";

Structures de contrôle

Les structures de contrôle sont les mêmes qu’en C, C++, javaScript, java :

Boucle for : for (initialisation ; test ; incrémentation) {

}

 

Page jours.php

<html>

 

<head><title>utilisation de tableau en PHP</title></head> <body>

<p>Jours de la semaine en fran&ccedil;ais et en anglais</p> <?php

$tab[1]="lundi"; $tab[2]="mardi"; $tab[3]="mercredi"; $tab[4]="jeudi"; $tab[5]="vendredi"; $tab[6]="samedi"; $tab[7]="dimanche";

$tab["lundi"]="monday"; $tab["mardi"]="tuesday"; $tab["mercredi"]="wednesday"; $tab["jeudi"]="thursday"; $tab["vendredi"]="friday"; $tab["samedi"]="saturday"; $tab["dimanche"]="sunday";

echo "<table border='1'>\n";

for ($i = 1; $i < 8 ; $i++) { echo "<tr><td>",$tab[$i],"</td><td>",$tab[$tab[$i]],"</td></tr>";

}

echo "</table>";

?>

</body>

</html>

 

Page jours2.php

<html>

 

<head><title>utilisation de tableau en PHP</title></head> <body>

<p>Jours de la semaine en fran&ccedil;ais et en anglais</p> <?php

$tab[1]="lundi"; $tab[2]="mardi"; $tab[3]="mercredi"; $tab[4]="jeudi"; $tab[5]="vendredi"; $tab[6]="samedi"; $tab[7]="dimanche";

$tab["lundi"]="monday"; $tab["mardi"]="tuesday"; $tab["mercredi"]="wednesday"; $tab["jeudi"]="thursday"; $tab["vendredi"]="friday"; $tab["samedi"]="saturday"; $tab["dimanche"]="sunday";

echo "<table border='1'>\n";

for ($i = 1; $i < 8 ; $i++) { printf("<tr><td>%s</td><td>%s</td></tr>",$tab[$i],$tab[$tab[$i]]);

}

echo "</table>";

?>

</body>

</html>

2

O. Auzende

Test :

if

(test) {

} else {

}

Ingénierie Web

 

Page comptes.php

<html>

 

<head><title>Entiers aleatoires</title></head> <body>

 

<p>Je tire 100 entiers au hasard entre 1 et 100.<p> <?php

$compteur1 = 0 ; $compteur2 = 0 ; srand();

 

for ($i=0; $i<100; $i++) { $randval = rand(1,100); if ($randval > 50) { $compteur1++ ;

 

}

 

else

{

 

$compteur2++;

}

 

}

 

printf("Sur 100 tirages, il y a : <br />- %d entiers sup&eacute;rieurs &agrave; 50 <br />- %d entiers inf&eacute;rieurs ou egaux &agrave; 50.", $compteur1, $compteur2);

?>

 

</body>

</html>

Boucle tant que : while (test) {

Boucle faire … tant que : do {

}

} while (test);

<html>

 

<head><title>Entiers al&eacute;atoires</title></head> <body>

 

<p>Je remplis un tableau de 30 entiers au hasard entre 1 et 100</p> <?php

 

srand();

 

for ($i = 0 ; $i < 30 ; $i++){ $tab[$i] = rand(1,100);

 

}

 

?>

<p>Je les affiche tous : </p> <?php

 

for ($i = 0 ; $i < 30 ; $i++){ echo "$tab[$i] * ";

}

 

?>

<p>Je les affiche tant qu'ils sont plus petits que 70 :</p> <?php

 

$i

=

0

;

}

while

(($i < 30) && ($tab[$i] < 70)) {

 

echo "$tab[$i] * "; $i++ ;

 

?>

<p>J'affiche le premier puis les suivants tant qu'ils sont plus petits que le premier :</p> <?php

 

$i

=

0

;

do

{ echo "$tab[$i] * "; $i++ ;

 

}

 

while

 

(($i < 30) && ($tab[$i] < $tab[0] ));

 

?>

 

</body>

</html>

3

Fonctions PHP

 

Page carres.php

<html>

 

<head><title>fonctions</title></head>

<body>

<?php

 

function carre ($num) { return $num * $num;

}

function cube($num) { return $num * $num * $num ;

}

 

?>

<p>Carr&eacute;s et cubes des nombres entiers de 1 &agrave; 10</p> <?php

 

echo "<table border='1'>";

for ($i=1;$i<=10;$i++){ printf("<tr><td>%s</td><td>%s</td><td>%s</td></tr>", $i, carre($i), cube($i)) ;

}

echo "</table>";

 

?>

</body>

</html>

Les fonctions sont généralement déclarées dans un fichier externe que l’on inclut dans des pages PHP par un script : <?php include "fichier.php" ; ?>

L’avantage est qu’il suffit d’ajouter la ligne <?php include "fichier.php" ; ?> dans une page PHP quelconque pour pouvoir utiliser toutes les fonctions figurant dans « fichier.php ».

Exercices

1) Ecrire une page PHP qui remplit un tableau $tab avec 50 entiers aléatoires compris entre 1 et 100 et fait afficher ces 50 entiers, séparés par des tirets.

2) Ajouter ensuite le calcul de la somme des éléments du tableau, puis de leur moyenne, puis la recherche du plus grand élément et celle du plus petit élément du tableau.

Variables provenant d'un formulaire

 

Page formulaire2.html

<html>

 

<head>

 

<title>Variables de formulaire</title>

 

</head>

<body>

 

<form action="valeurs.php" method="get">

<table> <tr><td>Nom :</td><td><input type="text" name="nom"></td></tr>

<tr><td>Prenom : </td><td><input type="text" name="prenom"></td></tr>

<tr><td>Ordinateur : </td> <td><select name="ordinateur"> <option value="pc">PC</option> <option value="mac">MAC</option> <option value="sun">Station Sun</option> <option value="autre">Autre</option> </select></td></tr> </table>

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

</form>

 

</body>

</html>

4

O. Auzende

Ingénierie Web

 

Page valeurs.php

<html>

 

<head><title>R&eacute;cup&eacute;ration des valeurs des variables</title></head> <body>

<p>Vous avez donn&eacute; comme renseignements :</p> <table>

<?php

$nom=$_GET["nom"]; echo "<tr><td>Nom : </td><td>$nom</td></tr>" ;

$prenom=$_GET["prenom"]; echo "<tr><td>Pr&eacute;nom :</td><td>$prenom</td></tr>" ;

$ordinateur=$_GET["ordinateur"]; echo "<tr><td>Ordinateur : </td><td>$ordinateur</td></tr>";

?>

</table>

</body>

</html>

On récupère les valeurs des variables par $_GET["nom"] ou $_POST["nom"] selon la méthode de transmission des arguments employée.

Exercices

1) Ecrire une page requete.html comportant un formulaire demandant le nom de l’utilisateur, son mail et le support de cours souhaité (proposé par une liste de sélection comportant « Mathématiques », « Histoire », « Géographie », « Philosophie »).

Un seul support pourra être demandé à chaque requête.

La méthode sera POST, la page réponse sera reception.php.

2) Ecrire une page reception.php toute simple accusant réception de la commande, rappelant le nom du demandeur, son mail, ainsi que l’intitulé du support demandé.

5