با ما تماس بگیرید

031-9101-5054
09356732798
09135140225-03191015054
info@freetem.ir

آیا کد ملی وارد شده درسته ! در php

شاید بسیار برایتان پیش آمده باشد که در پروژه ای لازم هست که شماره ملی کاربر را دریافت کنید و شاید تا الان تنها اعتبارسنجی که انجام میدادید چک کردن ده رقمی بودن و فقط عدد بودن کد ملی بوده است. بنا به دلایلی لازم شد که واقعا صحت کد ملی کاربر را بوسیله الگوریتم تشخیص دهیم:

 

 


function checkNationalCode( $code ) {

// freetem.ir

$code = (string) preg_replace( '/[^0-9]/', '', $code );

if ( strlen( $code ) != 10 ) {
return false;
}

$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 --;
}

$mod = (int) $sum % 11;

if ( $mod >= 2 ) {
$mod = 11 - $mod;
}

return $mod == $last;
}

 

در تابع بالا اگر کد ملی صحیح بود true و در صورت عدم صحیح بودن کد ملی false را برمیگرداند

 

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

قبلا حساب کاربری ایجاد کرده اید؟
گذرواژه خود را فراموش کرده اید؟
Loading...