شاید بسیار برایتان پیش آمده باشد که در پروژه ای لازم هست که شماره ملی کاربر را دریافت کنید و شاید تا الان تنها اعتبارسنجی که انجام میدادید چک کردن ده رقمی بودن و فقط عدد بودن کد ملی بوده . بنا به دلایلی لازم شد که واقعا صحت کد ملی کاربر را بوسیله آلگوریتمی تشخیص دهیم
منبع:
کد:
function checkNationalCode($code='')
{
$code = (string) preg_replace('/[^0-9]/','',$code);
if(strlen($code)>10 or strlen($code)<8)
return false;
if(strlen($code)==8)
$code = "00".$code;
if(strlen($code)==9)
$code = "0".$code;
$list_code = str_split($code);
$last = (int) $list_code[9];
unset($list_code[9]);
$i = 10;
$sum = 0;
foreach($list_code as $key=>$_)
{
$sum += intval($_) * $i;
$i--;
}
$mod =(int) $sum % 11;
if($mod >= 2)
$mod = 11 - $mod;
return $mod == $last;
}
کد:
blog.rezaonline.net