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 ê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 ê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 ê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 ?>
La coloration syntaxique est réalisée par un enrobage de la function php nommée highlight_file
mais si vous préférez, vous pouvez utiliser celle de SyntaxHighlighter ou même celle de geshi.
Pour ne pas voir les numéros de ligne, ajoutez &nl=non à la suite du nom du fichier.
Retour à la page principale de (gH)