手记

GB/T 17710-1999 PHP生成校验码

校验码算法描述如下:详细:http://wenku.baidu.com/link?url=CDvNJ1sLYOPzbbxjEy5R-oME95RlfTCUU5-I5M0bqUt0I32b0Xd0EKmI-HiFQHhY8OcB6ERTml7pUwXFseLl8GGvkuc7w0V2sFDxi2H0XGC



本例子以16位编号为例子,用PHP予以实现,代码如下:


$m '';    $str '440400131008309';    $str.= 'a';/* 测试用例,最后一位为校验码440402111006084044040013100830954404021150062404*/    function p($str,$n)    {        if ($n == 1)        {            return 10;        }        else        {            $num $str[$n-2];            $s = p($str,$n-1)%11 + $num;            return ($s%10==0?10:$s%10)*2;         }    }     $p = p($str,16);    for($i=0;$i<10;$i++){        if (($p%11 + $i)%10 == 1){            $m $i;            break;        }    }    echo $m;


0人推荐
随时随地看视频
慕课网APP