EAN/JAN→ASIN
最近, コードを書いてない。だから, というわけではないが,
ちょっとわけがあってEAN/JANで検索するプログラムを書きたくなったので
今日はAmazon Web Service(以下, AWS)で少しだけ遊んでいた。
AWSでは書籍はEAN/JAN(ISBN13)*1で検索できないので,
ASIN(ISBN10)に変換する必要がある。2007年以降に出版される書籍はISBN13に移行するので
そのままEAN/JANを使えばいいらしいけど。
function ean_to_asin($strEAN){
if(!is_string($strEAN) || ($len = strlen($strEAN)) != 13){
die "番号が正しくない";
}
$str = substr($strEAN, 3, 9);
$sum = 0;
for($i=0;$i<$len;$i++){
$sum += intval($str[$i]) * (10 - $i);
}
$num = 11 - ($sum % 11);
if($num == 10){
$strChecked = "X";
}
elseif($num == 11){
$strChecked = "0";
}
else{
$strChecked = strval($num);
}
return $str.$strChecked;
}
計算方法は, ここを参考にしました。
*1:バーコードのこと