Les fonctions en php – exercices corrigés fonction php5tp et solution fonction php
Les fonctions en php – exercices corrigés fonction php5tp et solution fonction php
EXERCICE 1:
Créez une fonction PHP qui affiche une boîte d'alerte à partir de
la fonction JavaScript dont la syntaxe est alert("chaine_de caractères")
Cette fonction peut être appelée avec comme paramètre le texte du message à
afficher. Elle est particulièrement utile pour afficher des messages d’erreur
de manière élégante, sans que ces derniers restent écrits dans la page.
La fonction retourne la valeur TRUE. Ceci n’est pas obligatoire
mais peut permettre un contrôle d’exécution.
Solution
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<meta
http-equiv="Content-Type" content="text/html;
charset=iso-8859-1"
/>
<title>
Chapitre 7 Exercice 1 </title>
</head>
<body>
<?php
function alerte($ch)
{
echo
"<script type=\"text/javascript\"> alert('$ch');
</script>";
return TRUE;
}
//Utilisation
if(alerte("Bonjour
à tous")) echo "La fonction alerte() fonctionne
bien";
alerte('RAAAAAAAAAAAAAAAAAA');
?>
</body>
</html>
Exercice 2:
Écrivez
une fonction de lecture de tableaux multidimensionnels en vous inspirant de l’exemple
7.3. L'affichage se fait sous forme de tableau HTML dont les titres sont les
clés des tableaux.
Solution
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=iso-
8859-1">
<title>Fonction de lecture
de tableaux multidimensionnels</title>
</head>
<body>
<?php
//Définition de la fonction
function tabmulti($tab,$bord)
{
echo "<table
border=\"$bord\" width=\"100%\"><tbody>";
foreach($tab as $cle=>$tab2)
{
echo
"<tr><th>$cle</th> ";
foreach($tab2 as $ind=>$val)
{
echo "<td>$val
</td>";
}
echo "</tr>";
}
echo "</tbody> </table>";
}
//Définition des tableaux
$tab1 =
array("France"=>array("Paris","Lyon","Marseille","Nantes","Lille"),
"Allemagne"=>array("Berlin","Hambourg","Hanovre","Munich","Cologne"
),
"Espagne"=>array("Madrid","Bilbao","Grenade","Barcelone","Séville")
);
//Appel de la fonction
tabmulti($tab1,1);
?>
</body>
</html>
Le
résultat affiché est le suivant :
Exercice 3:
Écrivez
une fonction qui retourne la somme de la série de terme général un = x2n
+ 1/n!. Les paramètres de la fonction sont n pour le nombre d’itérations
et d pour le nombre de décimales affichées pour le résultat. Il est
possible de réutiliser la fonction prod()présentée dans ce chapitre pour
calculer la factorielle n!.
Solution
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=iso-
8859-1">
<title>Fonction de calcul
de la somme des termes d'une
suite</title>
</head>
<body>
<?php
//Définition de la fonction
function somme($n,$d,$x)
{
$som=0;
$fact=1;
for($i=0;$i<=$n;$i++)
{
//Calcul de factorielle de $i
if($i==0) {$fact=1 ;}
else {$fact*=$i;}
//Calculde la somme
$som+= (pow($x,2*$i+1))/$fact;
//echo $som,"<br />";
}
return round($som,$d);
}
//Utilisation
echo somme(10,6,1);
?>
</body>
</html>
Exercice 4:
Écrivez
une fonction dont le paramètre passé par référence est un tableau de chaînes de
caractères et qui transforme chacun des éléments du tableau de manière que le
premier caractère soit en majuscule et les autres en minuscules, quelle que
soit la casse initiale des éléments, même si elle est mixte.
Solution
<?php
//Définition de la fonction
function initmaj(&$tab)
{
foreach($tab as $ind=>$val)
{
$tab[$ind]=ucfirst(strtolower($val));
}
return $tab;
}
//Utilisation
$tabch=
array("AzertToTO","Sous peAu","sARtHES jp");
print_r(initmaj($tabch));
?>
Exercice 5:
À
partir de la fonction sinus de PHP, écrivez une fonction qui donne le sinus d’un
angle donné en radian, en degré ou en grade.
Les
paramètres sont la mesure de l’angle et l’unité est symbolisée par une lettre.
Le deuxième paramètre doit avoir une valeur par défaut correspondant aux
radians.
Solution
<?php
//Définition de la fonction
function sinus($x,$unit)
{
switch($unit)
{
case "R":
case"r":
return sin($x);
break;
case "D":
case"d":
return sin($x/180*PI());
break;
case "G":
case"g":
return sin($x/200*PI());
break;
}
}
//Utilisation
echo sinus(PI()/6,R),"<br />";
echo sinus(60,d),"<br />";
echo sinus(100,g),"<br />";
?>
Résultats
affichés :
Exercice 6:
Créez
une fonction de création de formulaires comprenant une zone de texte, une case
d’option (radio button), un bouton Submit et un bouton Reset. Choisissez
comme paramètres les attributs des différents éléments HTML en cause. Chaque
appel de la fonction doit incorporer le code HTML du formulaire à la page.
Solution
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=iso-
8859-1">
<title>Fonction de création
de formulaire</title>
</head>
<body>
<?php
//Définition de la fonction
function
form($action,$methode,$libtexte,$nomtexte,$libradio,$nomradio,$valr
adio,$libsubmit,$libreset)
{
$code ="<form
action=\"$action\" method=\"$methode\" >";
$code.="<fieldset><legend>Complétez</legend>";
$code.="<label><b> $libtexte </b></label>
<input type=\"text\"
name=\"$nomtexte\" /><br />";
$code.="<label><b>
$libradio </b></label><input type=\"radio\"
name=\"$nomradio\" value=\"$valradio\" /><br
/>";
$code.="<input
type=\"submit\" value=\"$libsubmit\"
/> ";
$code.="<input
type=\"reset\" value=\"$libreset\" /><br />";
$code.="</fieldset>";
$code.="</form>";
return $code;
}
//Utilisation
echo
form("machin.php","post","Nom","nom","Abonné","abonn","oui",
"Envoi","Effacer");
echo form("truc.php","post","Loisirs","loisir","Amateur","amat",
"oui","Envoi","Effacer");
?>
</body>
</html>
Le
résultat obtenu est le suivant :
Exercice 7:
Décomposez
la fonction précédente en plusieurs fonctions de façon à constituer un module
complet de création de formulaire.
Au
total, il doit y avoir: une fonction pour l’en-tête du formulaire, une pour le
champ texte, une pour la case d’option, une pour les boutons Submit et Reset et
une pour la fermeture du formulaire.
Incorporez
ces fonctions dans un script, et utilisez-les pour créer un formulaire
contenant un nombre quelconque de champ de saisie de texte et de cases d’option.
Solution
Le fichier ch7exo7.php contient
le code des fonctions :
<?php
//Définition de la fonction form
function form($action,$methode,$legend)
{
$code ="<form
action=\"$action\" method=\"$methode\" >\n";
$code.="<fieldset><legend>$legend</legend>\n";
return $code;
}
//Définition de la fonction text
function
text($libtexte,$nomtexte)
{
$code="<label><b> $libtexte </b></label>
<input type=\"text\"
name=\"$nomtexte\"
/><br />\n";
return $code;
}
//Définition de la fonction radio
function radio($libradio,$nomradio,$valradio)
{
$code="<label><b>
$libradio </b></label><input type=\"radio\"
name=\"$nomradio\" value=\"$valradio\" /><br
/>\n";
return $code;
}
//Définition de la fonction
submit
function submit($libsubmit,$libreset)
{
$code.="<input
type=\"submit\" value=\"$libsubmit\"
/> \n";
$code.="<input
type=\"reset\" value=\"$libreset\" /><br />\n";
return $code;
}
//Définition de la fonction
finform
function finform()
{
$code="</fieldset></form>\n";
return $code;
}
?>
Le
fichier ch7exo7b.php inclus le code des fonctions et l’utilise
pour
créer un formulaire.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=iso-
8859-1">
<title>Fonctions de
création de formulaire</title>
</head>
<body>
<?php
//Inclusion des fonctions
include('ch7exo7.php');
//Utilisation
$code=
form("machin.php","post","Complétez le
formulaire");
$code.= text("Votre
nom","nom");
$code.= text("Votre
prénom","prenom");
$code.=
radio("Paris","ville","paris");
$code.=
radio("Lyon","ville","lyon");
$code.=
submit("Envoyer","Effacer");
$code.= finform();
echo $code;
?>
</body>
</html>
Article plus récent Article plus ancien