|
Тема |
проверка на ЕГН на PHP |
|
Автор | motion (Нерегистриран) | |
Публикувано | 09.08.01 01:04 |
|
|
Често ми се случва хората да ги интересува сорс, който да валидира ЕГН. Поради факта че инфо за ЕГН-тата трудно се намира. Ето ви един сорс, който извършва проверка дали дадено ЕГН е валидно или не...
Може да ви се стори дълъг или неоптимизиран начина на проверка, но го направих така за да може да се разбира по-лесно за какво става въпрос, а и едва ли някой ще му трябва да проверява милиони ЕГН-та за секунда :)))
Входният параметър е един - $bulstat (който съдържа ЕГН-то).
Изходът е директно в браузърът, който иска може да си го направи както му е удобно!
-------------------------------------
$egnlen=strlen($bulstat);
if ($egnlen != 10) {
$egnstr = "<B>Невалидено ЕГН - трябва да бъде 10 цифри!</B><BR>";
}
$a=(int) substr($bulstat, 0, 1);
$b=(int) substr($bulstat, 1, 1);
$c=(int) substr($bulstat, 2, 1);
$d=(int) substr($bulstat, 3, 1);
$e=(int) substr($bulstat, 4, 1);
$f=(int) substr($bulstat, 5, 1);
$g=(int) substr($bulstat, 6, 1);
$h=(int) substr($bulstat, 7, 1);
$i=(int) substr($bulstat, 8, 1);
$j=(int) substr($bulstat, 9, 1);
$egnsum=(($a * 2) + ($b * 4) + ($c * 8) + ($d * 5) + ($e * 10) + ($f * 9) + ($g * 7) + ($h * 3) + ($i * 6));
$rem=$egnsum % 11;
if ($rem == 10) {
$rem=0;
}
if ($j != $rem) {
echo "<B>Невалидно ЕГН!</B><BR>";
}
-----------------------------------
|
| |
|
|
|