Valid XHTML    Valid CSS2    

Listing du fichier l2aprog03.php

 

00001     <?php
00002     
00003     
# (gH) -_- l2aprog03.php ; TimeStamp (unix) : 20 Février 2013 vers 14:43
00004     
00005     
error_reporting(E_ALL | E_NOTICE | E_STRICT ) ;
00006     
00007     
###########################################################################
00008     # #
00009     # exemple de programme php pour le cours Développement Web Avancé en L2 #
00010     # #
00011     ###########################################################################
00012     # #
00013     # #
00014     # Fonctions et Paramètres #
00015     # #
00016     # #
00017     ###########################################################################
00018     
00019     # une fonction pour afficher les pourcentages entre 0 et 100
00020     
00021     
function
pct($nombre) {
00022     
00023      if ((
$nombre
>=0) and ($nombre<=100)) {
00024      echo
sprintf
("%6.2f",$nombre)."&nbsp;%\n" ;
00025      } else {
00026      echo
"??????&nbsp;%\n"
; # affichage choisi pour une valeur non valide
00027      # autre choix possible: -1 % !! (à discuter)
00028     
} ; # fin si
00029     
00030     
} # fin de fonction pct
00031     
00032     # tests unitaires
00033     
00034     
pct
(1/3) ; # réussi par affichage
00035     
pct
(200) ; # réussi
00036     
pct
("erreur") ; # discutable (1)
00037     
pct
("2 erreurs") ; # discutable (2)
00038     
00039     # reprise de pct avec un nombre variables de décimales
00040     # (une décimale par défaut)
00041     
00042     
function
pctd($nombre,$dec=1) {
00043     
00044     
# attention, fonction incomplète : il faudrait tester que la variable $nombre
00045      # est bien un nombre et que $dec est bien un entier
00046     
00047     
if ((
$nombre>=0) and ($nombre<=100)) {
00048      echo
sprintf
("%6.".$dec."f",$nombre)."&nbsp;%\n" ;
00049      } else {
00050      echo
"??????&nbsp;%\n" ;
00051      } ;
# fin si
00052     
00053     
} # fin de fonction pct
00054     
00055     # tests unitaires
00056     
00057     
pctd
(1/3) ; # réussi
00058     
pctd
(1/7,2) ; # réussi
00059     
00060     # définitions de tableaux
00061     
00062     
$tab1
= array() ; # aligner les = et les ;
00063     
$tab1
[0] = "janvier" ; # fait "vieille fille" mais montre au lecteur/lectrice
00064     
$tab1
[1] = "février" ; # le soin que l'on prend à
00065     
$tab1
[2] = "mars" ; # écrire le code ==> l'auteur n'est pas fainéant(e)
00066     
00067     # mieux car on peut changer l'ordre les lignes facilement
00068     
00069     
$tab2 = array() ;
00070     
$idx
= -1 ;
00071     
$idx
++ ; $tab2[$idx] = "pierre" ;
00072     
$idx
++ ; $tab2[$idx] = "paul" ;
00073     
$idx
++ ; $tab2[$idx] = "jacques" ;
00074     
00075     
# une fonction pour créer un tableau aléatoirement avec des entiers entre 1 et 50
00076     # la taille du tableau est passée en paramètre, 10 valeurs par défaut
00077     
00078     
function
tabAleat($taille=10) {
00079     
00080     
$leTab = array() ;
00081      for (
$idx
=0;$idx<$taille;$idx++) {
00082     
$valAleat
= rand(1,50) ;
00083     
$leTab
[$idx] = $valAleat ;
00084      } ;
# fin pour idx
00085     
00086     
return(
$leTab) ;
00087     
00088     }
# fin de fonction tabAleat
00089     
00090     # test unitaire (réussi par vérification de l'affichage) :
00091     
00092     
$unTableau
= tabAleat() ;
00093     
print_r
($unTableau) ;
00094     echo
" dans ce tableau, min = "
.min($unTableau)." max = ".max($unTableau)."\n" ;
00095     
00096     
# une fonction pour page Web qui affiche un "array" en <table>
00097     
00098     
function
array2table($leTableau) {
00099     
00100      echo
"<table cellpadding='5' cellspacing='5' class='quadrillage'>\n" ;
00101     
$nbe
= count($leTableau) ; # nbe = NomBre d'Eléments
00102     
echo
" <tr>\n" ;
00103      echo
" <th align='right'>Indice</th>\n"
; # th, pas td
00104     
echo
" <th align='right'>Valeur</th>\n" ; # th, pas td
00105     
echo
" </tr>\n" ;
00106      for (
$idx
=0;$idx<$nbe;$idx++) {
00107      echo
" <tr>\n" ;
00108     
$jdx
= $idx + 1 ;
00109     
$elt
= $leTableau[$idx] ;
00110      echo
" <td align='right'>
$idx </td>\n" ;
00111      echo
" <td align='right'>
$elt </td>\n" ;
00112      echo
" </tr>\n" ;
00113      } ;
# fin pour idx
00114     
echo
"</table>\n" ;
00115     
00116     }
# fin de array2table
00117     
00118     # test unitaire réussi
00119     
00120     
array2table
( tabAleat(5) ) ;
00121     
00122     
# test unitaire raté
00123     
00124     
array2table
( "ok ?" ) ;
00125     
00126     
# une liste de sélection des jours de la semaine
00127     
00128     
$jours
= "lundi mardi mercredi jeudi vendredi" ;
00129     
$tabj
= preg_split("/\s+/",$jours) ;
00130     
00131     
$numj
= 0 ;
00132     echo
"<select name='jourRDV'>\n" ;
00133     foreach (
$tabj
as $jour) {
00134     
$numj++ ;
00135      echo
" <option value='
$numj'>$jour</option>\n" ; # remarquer l'indentation
00136     
} # fin pour chaque
00137     
echo
"</select>\n" ;
00138     
00139     
?>

Pour ne pas voir les numéros de ligne, ajoutez &nl=non à la suite du nom du fichier.

 

 

retour gH    Retour à la page principale de   (gH)