ISBN 13->10
本のバーコードの上の段(バーコードの下に書いてある13桁の数字)がISBN13です。
横に書いてある、ISBN4-00000-000-0 がISBN10です。
下のサイトを参考にして、ISBN13をISBN10に変換するものです。
EAN/JAN→ASIN - 考える人、コードを書く人
amazonのASINがISBN10の一種で、JANがISBN13の一種だから、これで変換できるかと思ったらできなかったから、
別の使い道を考え中。
$strEAN=9784873111261; #ISBN13
$len=length($strEAN);
$str = substr($strEAN, 3, 9);
$sum = 0;
push (@isbn , $str=~/[0-9]/g);
for($i=0;$i<$len;$i++){
$sum += int($isbn[$i]) * (10 - $i);
}
$num = 11 - ($sum % 11);
if($num == 10){
$strChecked = "X";
}
elsif($num == 11){
$strChecked = "0";
}
else{
$strChecked = $num;
}
print "$str.$strChecked";
~
~
~