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\"
/>&nbsp;&nbsp;&nbsp;";
  $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\"
/>&nbsp;&nbsp;&nbsp;\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

Leave a Reply