@ 2021-02-23T12:49:27Z <?php
// CNIFRA ou CNIBEL ou PERMIS ou TITRESEJOUR ou REGNAT ou CARTEGRISE
$type = "PERMIS";
//code pour le permis
$codePermis ="D1FRA15AB21140*301027LEFEVRE<*";
/*-------CNI francaise---------*/
//code pour la CNIFRA 1er ligne
$codeCNI ="IDFRABEKDI<<<<<<<<<<<<<<<<<<<<271051";
//code pour la CNIFRA 2eme ligne
$codeCNI2 ="100727101235*DJAMEL<<<<<<<<810131*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.014 0.004 18.30 8.3.5 0.007 0.007 18.23 8.3.4 0.016 0.000 19.09 8.3.3 0.014 0.003 18.96 8.3.2 0.004 0.004 24.18 8.3.1 0.000 0.007 24.66 8.3.0 0.005 0.003 26.16 8.2.18 0.016 0.003 25.92 8.2.17 0.008 0.008 19.04 8.2.16 0.004 0.011 22.96 8.2.15 0.004 0.004 25.66 8.2.14 0.003 0.006 24.66 8.2.13 0.000 0.008 26.16 8.2.12 0.007 0.003 26.35 8.2.11 0.003 0.006 22.16 8.2.10 0.000 0.012 19.64 8.2.9 0.004 0.004 17.75 8.2.8 0.004 0.004 18.86 8.2.7 0.008 0.000 17.75 8.2.6 0.011 0.000 18.05 8.2.5 0.008 0.000 18.05 8.2.4 0.008 0.000 19.76 8.2.3 0.003 0.005 18.19 8.2.2 0.004 0.004 18.20 8.2.1 0.004 0.004 19.54 8.2.0 0.004 0.004 19.39 8.1.28 0.014 0.007 25.92 8.1.27 0.004 0.004 23.99 8.1.26 0.008 0.000 28.09 8.1.25 0.000 0.009 28.09 8.1.24 0.004 0.004 23.81 8.1.23 0.009 0.003 21.23 8.1.22 0.005 0.003 17.74 8.1.21 0.000 0.008 18.77 8.1.20 0.003 0.006 17.35 8.1.19 0.000 0.009 17.48 8.1.18 0.009 0.004 18.10 8.1.17 0.000 0.008 18.63 8.1.16 0.003 0.006 19.16 8.1.15 0.005 0.003 19.05 8.1.14 0.009 0.000 20.67 8.1.13 0.000 0.007 20.18 8.1.12 0.008 0.000 17.65 8.1.11 0.000 0.008 17.59 8.1.10 0.000 0.008 17.61 8.1.9 0.000 0.007 17.68 8.1.8 0.009 0.000 17.52 8.1.7 0.000 0.009 17.67 8.1.6 0.008 0.000 17.72 8.1.5 0.003 0.005 17.51 8.1.4 0.000 0.009 17.64 8.1.3 0.004 0.004 17.66 8.1.2 0.000 0.008 17.80 8.1.1 0.004 0.004 17.80 8.1.0 0.007 0.003 17.69 8.0.30 0.000 0.009 18.77 8.0.29 0.006 0.003 16.88 8.0.28 0.004 0.004 18.57 8.0.27 0.000 0.008 18.08 8.0.26 0.000 0.008 18.57 8.0.25 0.005 0.003 17.13 8.0.24 0.003 0.003 17.12 8.0.23 0.003 0.003 17.01 8.0.22 0.005 0.002 16.97 8.0.21 0.003 0.003 17.03 8.0.20 0.008 0.000 16.98 8.0.19 0.006 0.003 17.07 8.0.18 0.000 0.008 17.08 8.0.17 0.004 0.004 17.03 8.0.16 0.007 0.000 17.04 8.0.15 0.006 0.003 17.04 8.0.14 0.000 0.007 16.90 8.0.13 0.006 0.000 13.45 8.0.12 0.004 0.004 17.02 8.0.11 0.003 0.006 16.96 8.0.10 0.004 0.004 17.17 8.0.9 0.002 0.005 17.09 8.0.8 0.011 0.007 17.06 8.0.7 0.000 0.008 17.13 8.0.6 0.003 0.006 17.08 8.0.5 0.004 0.004 16.92 8.0.3 0.007 0.011 16.97 8.0.2 0.015 0.004 17.22 8.0.1 0.012 0.015 17.05 8.0.0 0.015 0.006 17.42 7.4.33 0.005 0.000 15.55 7.4.32 0.003 0.003 16.77 7.4.30 0.000 0.006 16.82 7.4.29 0.003 0.003 16.77 7.4.28 0.006 0.003 16.68 7.4.27 0.000 0.007 16.76 7.4.26 0.005 0.000 13.44 7.4.25 0.009 0.000 16.74 7.4.24 0.003 0.005 16.72 7.4.23 0.004 0.004 16.88 7.4.22 0.005 0.002 16.72 7.4.21 0.005 0.011 16.74 7.4.20 0.004 0.004 16.66 7.4.15 0.014 0.007 16.62 7.4.14 0.011 0.011 16.62 7.4.13 0.003 0.018 16.72 7.4.12 0.006 0.014 16.47 7.4.11 0.007 0.011 16.65 7.4.10 0.011 0.008 16.56 7.4.9 0.004 0.015 16.57 7.4.8 0.007 0.010 16.67 7.4.7 0.009 0.009 16.68 7.4.6 0.006 0.012 16.49 7.4.5 0.007 0.011 16.72 7.4.4 0.012 0.006 16.54 7.4.3 0.014 0.003 16.64 7.4.2 0.006 0.012 16.73 7.4.1 0.011 0.007 16.70 7.4.0 0.018 0.000 16.68 7.3.33 0.000 0.007 16.54 7.3.32 0.003 0.003 13.35 7.3.31 0.000 0.007 16.54 7.3.30 0.003 0.005 16.40 7.3.29 0.009 0.009 16.54 7.3.27 0.007 0.010 16.66 7.3.26 0.012 0.012 16.67 7.3.25 0.012 0.009 16.58 7.3.24 0.009 0.012 16.80 7.3.23 0.009 0.009 16.71 7.3.22 0.014 0.004 16.65 7.3.21 0.007 0.011 16.81 7.3.20 0.009 0.009 16.86 7.3.19 0.011 0.007 16.65 7.3.18 0.011 0.007 16.48 7.3.17 0.010 0.007 16.53 7.3.16 0.014 0.006 16.77 7.3.15 0.009 0.009 16.52 7.3.14 0.012 0.009 16.71 7.3.13 0.014 0.003 16.56 7.3.12 0.011 0.006 16.73 7.3.11 0.015 0.003 16.54 7.3.10 0.010 0.007 16.54 7.3.9 0.003 0.014 16.46 7.3.8 0.012 0.006 16.75 7.3.7 0.003 0.019 16.53 7.3.6 0.010 0.007 16.56 7.3.5 0.003 0.013 16.59 7.3.4 0.011 0.007 16.57 7.3.3 0.012 0.006 16.61 7.3.2 0.004 0.016 16.70 7.3.1 0.010 0.007 16.45 7.3.0 0.012 0.006 16.47
preferences:dark mode live preview
52.9 ms | 400 KiB | 5 Q