PDA

View Full Version : بررسی صحت کد ملی



mnoori
پنج شنبه 17 مهر 1393, 21:50 عصر
در بسیاری از نرم افزار ها نیاز به چک کردن درستی کد ملی است تا از اشتباهات کاربر در ثبت کد ملی مورد نظر در سیستم جلوگیری شود از این جهت تصمیم گرفتم چک کردن کد ملی به زبان php که خودم در سایت حمد سافت (http://www.hamdsoft.ir) ارائه کردم رو هم برای شما دوستان قرار بدم امید وارم که یه جایی کمکتون بکنه



function CheckMeliCode($meli_code)
{
if (strlen($meli_code) == 10)
{
if ($meli_code == '1111111111' ||
$meli_code == '0000000000' ||
$meli_code == '2222222222' ||
$meli_code == '3333333333' ||
$meli_code == '4444444444' ||
$meli_code == '5555555555' ||
$meli_code == '6666666666' ||
$meli_code == '7777777777' ||
$meli_code == '8888888888' ||
$meli_code == '9999999999' ||
$meli_code == '0123456789'
)
{
//echo 'كد ملي صحيح نمي باشد';
return false;
}

$c = substr($meli_code,9,1);

$n = substr($meli_code,0,1) * 10 +
substr($meli_code,1,1) * 9 +
substr($meli_code,2,1) * 8 +
substr($meli_code,3,1) * 7 +
substr($meli_code,4,1) * 6 +
substr($meli_code,5,1) * 5 +
substr($meli_code,6,1) * 4 +
substr($meli_code,7,1) * 3 +
substr($meli_code,8,1) * 2;
$r = $n - (int)($n / 11) * 11;
if (($r == 0 && $r == $c) || ($r == 1 && $c == 1) || ($r > 1 && $c == 11 - $r))
{
//echo ' کد ملی صحیح است';
return true;
}
else
{
//echo 'كد ملي صحيح نمي باشد';
return false;
}
}
else
{
//echo 'طول کد ملی وارد شده باید 10 کاراکتر باشد';
return false;
}
}



منبع: http://www.hamdsoft.ir/content/143

imohammad
جمعه 18 مهر 1393, 00:58 صبح
منم از این استفاده میکنم
گفتم بزارم شاید به کار کسی اومد


function regionIDvalidate ($code) {
if(strlen($code) <> 10){
return false;
}
else
{
$codeArray = str_split($code);
$AllEq ;
foreach($codeArray as $item => $value)
{
if($codeArray[0] <> $value)
{
$AllEq = false;
break;
}
else{ $AllEq = true;}
}
if($AllEq == true) return false;
$j = 10;
$sum = 0;
for($i=0; $i<=8; $i++)
{
$sum +=((int)($codeArray[$i])) * $j;
--$j;
}
$divid = $sum % 11;
if ($divid <= 2)
{
if($codeArray[9] == $divid)
{
return true;
}
return false;
}
else
{
$divid1 = 11 - $divid;
if ($codeArray[9] == $divid1)
{
return true;
}
else
{
return false;
}
}
}
}