64 && $ascii<91 ) /* En ASCII : A=65 et Z=90 En ISIN... A=10 et Z=35 */ return ($ascii-55); return false; } /** Test si un code ISIN donné est valable ŕ partir de son algo de contrôle. ** @param string $isin Code ISIN ŕ vérifier ** @return bool **/ function isValidIsin($isin) { $pays=substr($isin, 0,2); $nsin=''.substr($isin, 2,9); $clef=substr($isin,11,1)*1; $calcul=''.isinPoidsLettre($pays[0]).isinPoidsLettre($pays[1]).$nsin; //echo "Etape 1 = $calcul".EOL; $sommeImpair=$sommePair=0; for ($impair=0; $impair<12; $impair=$impair+2) { $strImpair=''.$calcul[$impair]*2; if (isset($strImpair[1])) $reste=$strImpair[1]*1; else $reste=0; $sommeImpair+=$strImpair[0]*1+$reste; } for ($pair=1; $pair<12; $pair=$pair+2) $sommePair+=$calcul[$pair]*1; $totalcalcul=$sommeImpair+$sommePair; //echo "Etape 3 = $sommeImpair + $sommePair = $totalcalcul".EOL; $dizSuperieur=ceil($totalcalcul/10)*10; $delta=$dizSuperieur-$totalcalcul; //echo "Etape 4 = $dizSuperieur - $totalcalcul = $delta".EOL; if ($delta==$clef) return true; return false; } ?>