اعتبار سنجی کد ملی در php

اعتبار سنجی کد ملی در 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

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

نشانی ایمیل شما منتشر نخواهد شد.