经测试代码如下:
/**
* 检测Israeli ID (9 digits)是否有效
*
* @param
* @arrange (512.笔记) jb51.cc
**/
function tocharArray($input){
$len = strlen($input);
for ($j=0;$j<$len;$j++){
$char[$j] = substr($input,$j,1);
}
return ($char);
}
function validateID($ID){
//Clean spaces
$ID = ereg_replace('[-[:space:]]','',$ID);
//Grab the test digit
$Bikoret=substr($ID,8,1);
//Take only 8 left digits of the Id.
$ID = substr($ID,strlen($ID)-1);
$dig = tocharArray($ID);
$numdig = sizeof($dig);
$j = 0;
for($i=($numdig-1) ; $i>=0 ; $i-=2){
$dbl[$j] = $dig[$i] * 2;
$j++;
}
$dblsz = sizeof($dbl);
$validate = 0;
//Sum all the 2x
for($i=0 ; $i<$dblsz ; $i++){
$add = tocharArray($dbl[$i]);
for($j=0 ; $j<sizeof($add) ; $j++){
$validate += $add[$j];
}
$add = '';
}
//Sum all the 1x
for ($i=($numdig-2); $i>=0; $i-=2){
$validate += $dig[$i];
}
If($validate % 10 != 0) {
$Bikoret1=(substr($validate,1) + 1) * 10;
}
Else {
$Bikoret1=$validate;
}
If($Bikoret1 - $validate == $Bikoret) return 1;
else return 0;
}
/*** 代码来自编程之家 jb51.cc(jb51.cc) ***/