php身份证号码校验算法

代码如下:
$idCardNo 为要监测的18位身份证号码

  1. function doVerifyIdCardNo($idCardNo)
  2. {
  3.     $iW = array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);
  4.     $szVerCode = "10X98765432";
  5.     $sum = 0;
  6.     for ($i=0; $i<17; $i++)
  7.     {
  8.         $sum += $idCardNo[$i]*$iW[$i];
  9.     }
  10.     $iy = $sum % 11;
  11.     $verifyBit = $szVerCode[$iy];
  12.     if ($verifyBit == $idCardNo[17] ) 
  13.     {
  14.         return true;
  15.     }
  16.     else 
  17.     {
  18.         return false;
  19.     }
  20. }

你可能感兴趣的:(PHP,算法)