<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>Generátor čísla účtu</title>
</head>
<body>
<?

/* 
	bez licence, volne k vyuziti
	https://k3a.me/cz-generator-bankovniho-cisla-uctu
*/

function cnbMod11($base)
{
	$len = strlen($base);
	if ($len > 10) {
		return false;
	} else if ($len < 10) {
		// dopln nuly zleva
		$base = str_repeat('0', 10-strlen($base)) . $base;	
	}

	$weight = array(1, 2, 4, 8, 5, 10, 9, 7, 3, 6);

	$sum = 0;
	$reversed = strrev($base);
	for ($i = 0; $i < strlen($reversed); $i++)
		$sum += substr($reversed, $i, 1) * $weight[$i];

	if ($sum % 11 == 0)
		return true;
	else 
		return false;
}

$input = 1234567901;
if (array_key_exists("input", $_REQUEST)) {
	$input = intval($_REQUEST['input']);
} else if (array_key_exists("source", $_REQUEST)) {
	echo '<pre>' . htmlentities(file_get_contents('mod11.php')) . '</pre>';
}

echo "<h1>Generátor čísla účtu</h1>";
echo "Podle Modulo 11 algoritmu z vyhlášky ČNB č. 62/2004.<br>";
echo "Číslo může být nejvíc desetimístné. Předčíslí není implementováno.<br>";
echo "<a href='mod11.php?source'>Zobrazit zdrojový kód v PHP</a>";
echo "<br><br>";
echo "Po zadání počátečního čísla se vygenerují validní čísla účtu stejná nebo vyšší zadanému počátečnímu.<br><br>";
echo "<form>Počáteční číslo: <input type='text' name='input' value='$input'><input type='submit' value='Generovat'></form>";


for ($i=0; $i<100; $i++) {
	$num = $input + $i;
	if (cnbMod11($num)) {
		if ($i == 0) 
			echo "<strong>$num</strong><br/>";
		else
			echo "$num<br/>";
	}
}
?>
</body>
</html>

Generátor čísla účtu

Podle Modulo 11 algoritmu z vyhlášky ČNB č. 62/2004.
Číslo může být nejvíc desetimístné. Předčíslí není implementováno.
Zobrazit zdrojový kód v PHP

Po zadání počátečního čísla se vygenerují validní čísla účtu stejná nebo vyšší zadanému počátečnímu.

Počáteční číslo:
1234567901
1234567928
1234567936
1234567944
1234567952
1234567960
1234567979
1234567987
1234567995