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:バーコードのこと