Posted By

chupzzz on 06/14/11


Tagged

checksum


Versions (?)

PFR (Russia) number checksum / Проверка номера Пенсионного Фонда России


 / Published in: PHP
 

This function checks PFR (Russia) number for valid value.

Функция проверяет правильность номера страхового свидетельства ПФР, высчитывая его контрольную сумму. (источник алгоритма: http://forum.klerk.ru/showpost.php?p=50544789&postcount=3). (ПФР - Пенсионный Фонд Российской Федерации).

  1. /**
  2.  * This function checks PFR (Russia) number for valid value.
  3.  *
  4.  * Функция проверяет правильность номера страхового свидетельства ПФР, высчитывая его контрольную сумму.
  5.  * (источник алгоритма: http://forum.klerk.ru/showpost.php?p=50544789&postcount=3).
  6.  * (ПФР - Пенсионный Фонд Российской Федерации).
  7.  *
  8.  * @param string $num
  9.  * Номер для проверки. ДОЛЖЕН быть строкой, т.к. большинство номеров ПФР начинаются с нуля.
  10.  *
  11.  */
  12. function is_valid_pfr($num){
  13. $num = (string) $num;
  14. if (strlen($num) != 11) return false;
  15.  
  16. $sum = $num[0]*9 + $num[1]*8 + $num[2]*7 + $num[3]*6 + $num[4]*5 + $num[5]*4 + $num[6]*3 + $num[7]*2 + $num[8]*1;
  17. $check = $sum - (101 * (int)($sum / 101));
  18. $last_digits = $num[9] . $num[10];
  19.  
  20. if ((int) $check == (int) $last_digits)
  21. return true;
  22. else
  23. return false;
  24. }

Report this snippet  

You need to login to post a comment.