Valid XHTML    Valid CSS2    

Listing du fichier ncis_res_sol.php

 

00001     <?php
00002     
00003     
# (gH) -_- ncis_res_sol.php ; TimeStamp (unix) : 31 Mars 2013 vers 11:09
00004     
00005     
error_reporting(E_ALL | E_NOTICE | E_STRICT) ;
00006     include(
"std.php") ;
00007     
debutPage
("Aidons Abby","strict") ;
00008     
debutSection() ;
00009     
00010     
#############################################################################################
00011     
00012     
function
chiffreRepete($desChiffres) {
00013     
#-------------------------------------
00014     
00015      # on passe les chiffres en revue
00016      # et on cumule les occurrences
00017      # on sort de la boucle dès qu'on voit un chiffre pour la deuxième fois
00018      # grace à return
00019     
00020     
$lng
= strlen($desChiffres) ;
00021     
$cnt = array() ;
00022     
$idc
= 0 ; # idc = indice de chiffre
00023     
while (
$idc<$lng) {
00024     
$chif
= substr($desChiffres,$idc,1) ;
00025      if (!isset(
$cnt
[$chif])) {
00026     
$cnt
[$chif] = 1 ;
00027      } else {
00028      return(
TRUE
) ; # mieux que $cnt[chif]++ ; if ($cnt[$idc]>1) { ...
00029     
} ; # finsi
00030     
$idc++ ;
00031      } ;
# fin tant que
00032     
00033      # si on arrive ici, c'est qu'aucun chiffre n'était répété
00034     
00035     
return(
FALSE ) ;
00036     
00037     }
# fin de fonction chiffreRepete
00038     
00039     
function
alternancePairImpair($quatreChiffres) {
00040     
#-----------------------------------------------
00041     
00042     
return(
preg_match("/[02468][13579][02468][13579]/",$quatreChiffres) ) ;
00043     
# que pensez-vous de
00044      ## return( preg_match("/[[02468][13579]]{2}/",$quatreChiffres) ) ;
00045     
00046     
} # fin de fonction alternancePairImpair
00047     
00048     #############################################################################################
00049     
00050     
h1
("Aidons Abby à trouver les suspects") ;
00051     
00052     
# testons si un numéro de plaque a été fourni
00053     
00054     
$plaque
= "???" ;
00055     if (isset(
$_GET
["plaque"])) {
00056     
$plaque
= trim($_GET["plaque"]) ;
00057     } ;
# finsi
00058     
00059     
if ((
$plaque=="???") or ($plaque=="")) {
00060     
h2
("Vous n'avez pas transmis de numéro de plaque, dommage pour Abby.","grouge") ;
00061     
pvide() ;
00062     
p() ;
00063      echo
href
("montresource.php?nomfic=ncis_res_sol.php","Code-source PHP de cette page","orange_stim nou")."." ;
00064     
finp() ;
00065     
finSection() ;
00066     
finPage() ;
00067      exit() ;
00068     } ;
# finsi
00069     
00070     
blockquote() ;
00071     
00072     
h2
("Voici le numéro de plaque que vous avez transmis : ".s_span($plaque,"gvertf"),"grouge") ;
00073     
00074     
blockquote() ;
00075     
00076     
# s'il y a de 1 à 4 chiffres, un espace, deux lettres, un espace et deux chiffres, c'est bien
00077     # un numéro de suspect
00078     
00079     
if (!
preg_match("/^[0-9]{1,4} [A-Za-z]{2} [0-9]{2}\$/",$plaque)) {
00080     
00081     
h3
("Il ne s'agit pas du numéro d'un suspect.") ;
00082     
00083     } else {
00084     
00085     
h3
("Il s'agit bien du numéro d'un suspect.") ;
00086     
00087     
# suspect Ari = que des consonnes
00088     
00089     
preg_match
("/[A-Za-z]{2}/",$plaque,$trouve) ; # noter qu'il n'y a plus ^ ni $
00090     
$lesLettres
= strtoupper($trouve[0]) ;
00091      if (!
preg_match
("/[AEIOUY]/",$lesLettres)) { # mais pas preg_match("/[^AEIOUY]/",$lesLettres)
00092     
p() ;
00093      echo
" A cause des consonnes, ce pourrait bien &ecirc;tre Ari Haswari." ;
00094     
finp() ;
00095      }
# fin si
00096     
00097      # suspect tueur de port en port = un chiffre répété (avant ou après les lettres)
00098     
00099     
preg_match_all
("/[0-9]+/",$plaque,$chiffres) ;
00100     
$chiffresAvant
= $chiffres[0][0] ;
00101     
$chiffresApres
= $chiffres[0][1] ;
00102      if (
chiffreRepete
($chiffresAvant.$chiffresApres)) {
00103     
p() ;
00104      echo
" A cause de chiffre(s) répété(s), ce pourrait bien &ecirc;tre le tueur de port en port." ;
00105     
finp() ;
00106      }
# fin si
00107     
00108      # suspect la grenouille = 4 chifres exactement avant les lettres avec alternance pair/impair
00109     
00110     
if (
preg_match("/[0-9]{4}/",$plaque,$chiffres)) {
00111      if (
alternancePairImpair
($chiffres[0])) {
00112     
p() ;
00113      echo
" A cause des 4 chiffre(s) en alternance pair/impair, ce pourrait bien &ecirc;tre \"la Grenouille\"." ;
00114     
finp() ;
00115      }
# fin si
00116     
} # fin si
00117     
00118     
} # fin si
00119     
00120     
finblockquote() ;
00121     
finblockquote() ;
00122     
00123     
#############################################################################################
00124     
00125     
pvide() ;
00126     
00127     
p() ;
00128     echo
href
("montresource.php?nomfic=ncis_res_sol.php","Code-source PHP de cette page","orange_stim nou")."." ;
00129     
finp() ;
00130     
00131     
00132     
finSection() ;
00133     
finPage() ;
00134     
?>

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)