اعتبار سنجی کد ملی در php
شاید بسیار برایتان پیش آمده باشد که در پروژه ای لازم هست که شماره ملی کاربر را دریافت کنید و شاید تا الان تنها اعتبارسنجی که انجام میدادید چک کردن ده رقمی بودن و فقط عدد بودن کد ملی بوده است. بنا به دلایلی لازم شد که واقعا صحت کد ملی کاربر را بوسیله الگوریتم تشخیص دهیم:
function checkNationalCode( $code ) {
// snippets.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 را بر میگرداند. پس همین الان صحت کد ملی خودتون را تست کنید!
منبع :
rezaonline.net/blog




