@ 2019-08-20T22:21:32Z <?php
// CNIFRA ou CNIBEL ou PERMIS ou TITRESEJOUR ou REGNAT ou CARTEGRISE
$type = "PERMIS";
//code pour le permis
$codePermis ="D1FRA13AC20461*281020FERRIER<*";
/*-------CNI francaise---------*/
//code pour la CNIFRA 1er ligne
$codeCNI ="IDFRATAYACHI<<<<<<<<<<<<<<<<<<343246";
//code pour la CNIFRA 2eme ligne
$codeCNI2 ="131134304304*RAFIK<<<<<<<<<960711*M*";
$codeCNI3 =$codeCNI2;
$codeCNI4 =$codeCNI2;
/*-------END CNI francaise---------*/
/*-------CNI Belge---------*/
//code pour la CNIBELGE (ligne jusqu'a la derniere cle de controle)
$codeCNIBEL = "IDBEL592273047<809*<<<<<<<<<<<910312*M251230*BEL91031244758*";
//code suivant la derniere cle de controle
$codeCNIBEL2 = "DE<NOBREGA<<ALEXANDRE<EMMANUEL";
$codeCNIBEL3 = $codeCNIBEL;
$codeCNIBEL4 = $codeCNIBEL;
/*-------END CNI Belge---------*/
//code pour le titre de sejour (ligne jusqu'a la derniere cle de controle)
$codeTitreSejour = "IRFRA2JA3VISG5*<9915026763<<<<900201*M161231*CMR<<<<<<<<<<<*";
//code suivant la derniere cle de controle
$codeTitreSejour2 = "MEYE<MINKOA<<YOHAN<<BORIS<<<<<<";
$codeTitreSejour3 = $codeTitreSejour;
$codeTitreSejour4 = $codeTitreSejour;
//code pour le registre national belge
$codeRegNat="910524295";
//code pour la carte grise
$codeCarteGrise = "CRFRAAB123CD*VF7X18E00018E8472*980105*VP<<<<CI<<MERSSAIDESS<<<SR220TD<<<<<<98TN036623<**";
$codeCarteGrise2 = $codeCarteGrise;
$codeCarteGrise3 = $codeCarteGrise;
$TABCode = [];
$TABCode2 = [];
$allcode="";
$allCleControle="";
if($type == "CNIBEL") {
$TABCode = explode('*',$codeCNIBEL);
array_splice($TABCode, count($TABCode)-1);
$TABCode[0] = substr($TABCode[0],5);
$TABCode[2] = substr($TABCode[2],1);
$codeCNIBEL3 = substr_replace($codeCNIBEL3 ,"",-1);
for ($i = 0; $i < 3; $i++) {
array_push($TABCode2,verifSomme($TABCode[$i]));
}
for ($i = 0; $i < count($TABCode2); $i++) {
$codeCNIBEL3 = str_replace_first('*', $TABCode2[$i],$codeCNIBEL3);
}
//retirer tout les caracteres non numeric (except < ) dans le code
$res = preg_replace("/[^0-9<]/", "",$codeCNIBEL3);
array_push($TABCode2,verifSomme($res));
for ($i = 0; $i < count($TABCode2); $i++) {
$codeCNIBEL4 = str_replace_first('*', $TABCode2[$i],$codeCNIBEL4);
}
for ($i = 0; $i < count($TABCode2); $i++) {
$allCleControle .= $TABCode2[$i]." ";
}
echo htmlspecialchars($codeCNIBEL4);
echo htmlspecialchars($codeCNIBEL2);
echo'<br>';
echo'<br>';
echo $allCleControle;
}
if($type == "CARTEGRISE") {
$TABCode = explode('*',$codeCarteGrise);
array_splice($TABCode, count($TABCode)-2);
$TABCode[0] = substr($TABCode[0],-7);
$TABCode[3] = substr($TABCode[3],-11);
for ($i = 0; $i < count($TABCode); $i++) {
array_push($TABCode2,verifSomme($TABCode[$i]));
}
for ($i = 0; $i < count($TABCode2); $i++) {
$codeCarteGrise2 = str_replace_first('*', $TABCode2[$i],$codeCarteGrise2);
}
$codeCarteGrise2 = substr_replace($codeCarteGrise2 ,"",-1);
array_push($TABCode2,verifSomme($codeCarteGrise2));
for ($i = 0; $i < count($TABCode2); $i++) {
$codeCarteGrise3 = str_replace_first('*', $TABCode2[$i],$codeCarteGrise3);
}
for ($i = 0; $i < count($TABCode2); $i++) {
$allCleControle .= $TABCode2[$i]." ";
}
echo htmlspecialchars($codeCarteGrise3);
echo'<br>';
echo'<br>';
echo $allCleControle;
}
if($type == "TITRESEJOUR"){
$TABCode = explode('*',$codeTitreSejour);
array_splice($TABCode, count($TABCode)-1);
$TABCode[0] = substr($TABCode[0],-9);
$TABCode[1] = substr($TABCode[1],-6);
$TABCode[2] = substr($TABCode[2],-6);
for ($i = 0; $i < 3; $i++) {
array_push($TABCode2,verifSomme($TABCode[$i]));
}
for ($i = 0; $i < count($TABCode2); $i++) {
$codeTitreSejour3 = str_replace_first('*', $TABCode2[$i],$codeTitreSejour3);
}
array_push($TABCode2,verifSomme($codeTitreSejour3));
for ($i = 0; $i < count($TABCode2); $i++) {
$codeTitreSejour4 = str_replace_first('*', $TABCode2[$i],$codeTitreSejour4);
}
for ($i = 0; $i < count($TABCode2); $i++) {
$allCleControle .= $TABCode2[$i]." ";
}
echo htmlspecialchars($codeTitreSejour4);
echo htmlspecialchars($codeTitreSejour2);
echo'<br>';
echo'<br>';
echo $allCleControle;
}
if($type == 'PERMIS'){
$TABCode = explode('*',$codePermis);
array_splice($TABCode, count($TABCode)-1);
for ($i = 0; $i < count($TABCode); $i++) {
array_push($TABCode2,verifSomme($TABCode[$i]));
if($i+1 == count($TABCode)-1){
for ($j = 0; $j < count($TABCode); $j++) {
$allcode .= $TABCode[$j];
if(isset($TABCode2[$j])){
$allcode .= $TABCode2[$j];
}
}
array_push($TABCode2,verifSomme($allcode));
$allcode .= $TABCode2[count($TABCode2)-1];
break;
}
}
for ($i = 0; $i < count($TABCode2); $i++) {
$allCleControle .= $TABCode2[$i]." ";
}
echo htmlspecialchars($allcode);
echo'<br>';
echo $allCleControle;
}
if($type == 'CNIFRA'){
$TABCode = explode('*',$codeCNI2);
array_splice($TABCode, count($TABCode)-1);
$TABCode[1] = substr($TABCode[1],-6);
for ($i = 0; $i < 2; $i++) {
array_push($TABCode2,verifSomme($TABCode[$i]));
}
for ($i = 0; $i < count($TABCode2); $i++) {
$codeCNI3 = str_replace_first('*', $TABCode2[$i],$codeCNI3);
}
$codeCNI3 = substr_replace($codeCNI3 ,"",-1);
array_push($TABCode2,verifSomme($codeCNI.$codeCNI3));
for ($i = 0; $i < count($TABCode2); $i++) {
$codeCNI4 = str_replace_first('*', $TABCode2[$i],$codeCNI4);
}
for ($i = 0; $i < count($TABCode2); $i++) {
$allCleControle .= $TABCode2[$i]." ";
}
echo htmlspecialchars($codeCNI4);
echo'<br>';
echo $allCleControle;
}
if($type == 'REGNAT'){
echo 97 - ($codeRegNat % 97);
}
function verifSomme($ligne) {
$factors = array(7,3,1);
$result = 0;
$offset = 0;
foreach(str_split($ligne,1) as $char) {
if($char == '<') {
$char = 0;
//ord('A') <= ord($char) <= ord('Z')
} elseif(ord($char) >= 65 && ord($char) <= 90) {
$char = ord($char) - 55;
} elseif($char >= 0 && $char <= 9) {
$char = intval($char);
} else {
die('caractère hors borne');
}
$result += $char*$factors[$offset%3];
$offset++;
}
return $result % 10;
}
function str_replace_first($from, $to, $content)
{
$from = '/'.preg_quote($from, '/').'/';
return preg_replace($from, $to, $content, 1);
}
?>
Enable javascript to submit You have javascript disabled. You will not be able to edit any code.
Here you find the average performance (time & memory) of each version. A grayed out version indicates it didn't complete successfully (based on exit-code).
Version System time (s) User time (s) Memory (MiB) 8.3.6 0.013 0.010 18.56 8.3.5 0.000 0.015 18.41 8.3.4 0.000 0.016 18.72 8.3.3 0.013 0.003 18.88 8.3.2 0.009 0.000 22.41 8.3.1 0.008 0.000 22.13 8.3.0 0.014 0.000 23.66 8.2.18 0.011 0.007 18.54 8.2.17 0.014 0.007 22.96 8.2.16 0.007 0.007 22.26 8.2.15 0.003 0.007 24.18 8.2.14 0.005 0.003 24.66 8.2.13 0.011 0.000 26.16 8.2.12 0.006 0.013 26.16 8.2.11 0.006 0.003 22.33 8.2.10 0.008 0.004 17.86 8.2.9 0.003 0.006 18.00 8.2.8 0.008 0.000 18.18 8.2.7 0.008 0.000 18.05 8.2.6 0.005 0.003 18.09 8.2.5 0.000 0.008 18.10 8.2.4 0.004 0.004 19.59 8.2.3 0.008 0.000 19.55 8.2.2 0.003 0.005 18.27 8.2.1 0.003 0.006 19.52 8.2.0 0.007 0.000 19.34 8.1.28 0.013 0.003 25.92 8.1.27 0.005 0.003 20.89 8.1.26 0.005 0.003 26.35 8.1.25 0.007 0.007 28.09 8.1.24 0.003 0.006 23.92 8.1.23 0.006 0.006 19.22 8.1.22 0.003 0.005 17.78 8.1.21 0.006 0.003 18.77 8.1.20 0.006 0.003 17.48 8.1.19 0.005 0.003 17.35 8.1.18 0.004 0.004 18.10 8.1.17 0.006 0.003 18.74 8.1.16 0.003 0.009 19.04 8.1.15 0.004 0.004 19.06 8.1.14 0.005 0.003 20.93 8.1.13 0.010 0.000 20.30 8.1.12 0.004 0.004 17.64 8.1.11 0.003 0.006 17.50 8.1.10 0.004 0.004 17.65 8.1.9 0.000 0.007 17.56 8.1.8 0.003 0.006 17.55 8.1.7 0.005 0.003 17.52 8.1.6 0.008 0.000 17.72 8.1.5 0.000 0.008 17.64 8.1.4 0.006 0.003 17.59 8.1.3 0.000 0.008 17.70 8.1.2 0.003 0.005 17.66 8.1.1 0.004 0.004 17.69 8.1.0 0.008 0.000 17.51 8.0.30 0.006 0.006 19.98 8.0.29 0.006 0.003 16.75 8.0.28 0.000 0.007 18.59 8.0.27 0.000 0.007 17.38 8.0.26 0.008 0.000 20.27 8.0.25 0.000 0.007 17.06 8.0.24 0.004 0.004 17.14 8.0.23 0.007 0.000 17.14 8.0.22 0.004 0.004 16.95 8.0.21 0.007 0.000 17.02 8.0.20 0.007 0.000 17.12 8.0.19 0.000 0.007 17.16 8.0.18 0.003 0.006 17.14 8.0.17 0.003 0.006 17.12 8.0.16 0.000 0.008 17.07 8.0.15 0.003 0.005 16.91 8.0.14 0.000 0.007 17.03 8.0.13 0.003 0.003 13.44 8.0.12 0.004 0.004 16.92 8.0.11 0.004 0.004 17.04 8.0.10 0.005 0.003 16.93 8.0.9 0.004 0.004 16.85 8.0.8 0.009 0.006 17.06 8.0.7 0.004 0.004 16.94 8.0.6 0.003 0.006 16.92 8.0.5 0.004 0.004 16.94 8.0.3 0.010 0.007 17.26 8.0.2 0.015 0.008 17.34 8.0.1 0.005 0.003 17.09 8.0.0 0.012 0.008 16.83 7.4.33 0.000 0.005 15.55 7.4.32 0.005 0.003 16.62 7.4.30 0.006 0.000 16.77 7.4.29 0.005 0.003 16.75 7.4.28 0.004 0.004 16.64 7.4.27 0.000 0.007 16.78 7.4.26 0.000 0.007 13.38 7.4.25 0.008 0.000 16.64 7.4.24 0.005 0.002 16.70 7.4.23 0.007 0.000 16.57 7.4.22 0.003 0.004 16.56 7.4.21 0.007 0.009 16.76 7.4.20 0.000 0.007 16.67 7.4.13 0.009 0.009 16.64 7.4.12 0.014 0.008 16.57 7.4.11 0.009 0.009 16.53 7.4.10 0.011 0.007 16.57 7.4.9 0.009 0.009 16.74 7.4.8 0.007 0.010 19.39 7.4.7 0.010 0.010 16.71 7.4.6 0.010 0.010 16.55 7.4.5 0.007 0.010 16.51 7.4.4 0.009 0.012 16.60 7.4.0 0.006 0.009 15.07 7.3.33 0.005 0.003 16.50 7.3.32 0.003 0.003 13.35 7.3.31 0.005 0.002 16.51 7.3.30 0.003 0.003 16.39 7.3.29 0.000 0.007 16.52 7.3.28 0.006 0.013 16.54 7.3.26 0.011 0.009 16.63 7.3.23 0.007 0.011 16.64 7.3.21 0.006 0.019 16.40 7.3.20 0.003 0.013 16.59 7.3.19 0.006 0.010 16.58 7.3.18 0.006 0.015 16.57 7.3.17 0.009 0.009 16.61 7.3.16 0.008 0.008 16.42 7.3.12 0.013 0.006 15.01 7.3.11 0.009 0.009 14.84 7.3.10 0.007 0.007 15.03 7.3.9 0.004 0.014 15.06 7.3.8 0.011 0.003 15.03 7.3.7 0.005 0.011 14.94 7.3.6 0.006 0.010 14.91 7.3.5 0.006 0.008 15.02 7.3.4 0.010 0.009 14.86 7.3.3 0.006 0.008 14.97 7.3.2 0.007 0.009 15.76 7.3.1 0.007 0.007 15.97 7.3.0 0.006 0.012 15.84 7.2.33 0.010 0.010 16.91 7.2.32 0.009 0.011 16.72 7.2.31 0.009 0.012 16.89 7.2.30 0.007 0.010 16.84 7.2.29 0.007 0.010 16.62 7.2.25 0.006 0.012 15.50 7.2.24 0.003 0.013 15.44 7.2.23 0.003 0.016 15.20 7.2.22 0.007 0.003 15.14 7.2.21 0.008 0.006 15.33 7.2.20 0.005 0.013 15.36 7.2.19 0.012 0.008 15.17 7.2.18 0.013 0.005 15.13 7.2.17 0.010 0.007 15.29 7.2.16 0.004 0.009 15.14 7.2.15 0.010 0.010 15.28 7.2.14 0.013 0.010 15.19 7.2.13 0.009 0.012 15.26 7.2.12 0.015 0.006 15.19 7.2.11 0.013 0.004 15.46 7.2.10 0.007 0.011 15.19 7.2.9 0.014 0.003 15.28 7.2.8 0.012 0.012 14.96 7.2.7 0.016 0.007 15.18 7.2.6 0.012 0.009 15.25 7.2.5 0.011 0.011 15.28 7.2.4 0.003 0.014 15.14 7.2.3 0.026 0.007 15.33 7.2.2 0.020 0.007 14.94 7.2.1 0.016 0.003 15.04 7.2.0 0.016 0.000 15.10 7.1.33 0.011 0.007 15.86 7.1.32 0.009 0.006 15.61 7.1.31 0.006 0.011 14.98 7.1.30 0.008 0.010 14.81 7.1.29 0.003 0.014 14.74 7.1.28 0.011 0.003 14.88 7.1.27 0.007 0.006 15.00 7.1.26 0.012 0.006 15.13 7.1.25 0.012 0.012 14.01
preferences:dark mode live preview
32.75 ms | 400 KiB | 5 Q