ISBN Number 83 in ISBN means POLNAD.
ISBN has 10 digits.
First nine digits have weights:
weights: 10 9  8  7  6  5  4  3  2        
digits:  d1 d2 d3 d4 d5 d6 d7 d8 d9  
Here is algorithm for finding d10:
sum = 10*d1+9*d2+8*d3+7*d4+6*d5+5*d6+4*d7+3*d8+2*d9
C = sum mod 11
if 11 - C equals to 10 then d10 = X
else
d10 = 11 - C



Enter ISBN:


PHP code:
$number = strlen();
if($number!=10) {
print "Incorrect ISBN!<BR>";
return 1;
}
for($i = 0; $i<9; $i++)
{
if(!($isb[$i]>='0' && $isb[$i]<='9')) {
print "Incorrect ISBN! (DIGIT)<BR>";
return 1;
}
$arr[$i] = $isb[$i]-'0';
}
if($isb[9]=='X') $arr[9]='X';
else if($isb[9]>='0' && $isb[9]<='9') {
$arr[9] = $isb[9]-'0';
} else {
print "Incorrect ISBN! (DIGIT)<BR>";
return 1;
}
$sum = $arr[0]*10+$arr[1]*9+$arr[2]*8+$arr[3]*7+$arr[4]*6+$arr[5]*5+$arr[6]*4+$arr[7]*3+$arr[8]*2;
$sum %= 11;
$c = 11- $sum;
if(!(($c==$arr[9])||(($c==10)&&($arr[9]=='X')))){
print "Incorrect ISBN (code)!<BR>";
return 1;
}
print "CORRECT!<BR>ISBN is: $isb<br>";


Back to main page