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