Я тут рядышком давно выкладывал проверялку ISBN длиной 10 и 13 символов. Вот теперь проверку штрихкодов дляя кучи. Сама система крайне простая: берём цифры, переворачиваем (разница длин в первых цифрах), срезаем первую цифру (это контрольное число; само по себе оно всегда в конце), складываем все чётные цифры, умножаем сумму на 3, складываем нечётные, складываем результат того и другого. Контрольную сумму проверить просто: берёт кратность от 10 от результата и складываем с контрольной суммой. Если сумма равна 10, то всё оки. Либо, если контрольная сумма 0 и наш результат кратен нулю, то тоже оки. EAN-13 отличается от UCC-12 (американского кода, используется также в канаде) только длиной, но проверяется одинакого. PHP: <? function barcode($value){ $number = strrev(str_replace(' ', '', $value)); $sum = 0; if (!is_numeric($number)) return; for ($i = 1, $c = strlen($number); $i < $c; $i += 2) $sum += ($number[$i] * 3 + $number[$i + 1]); $mod = ($sum % 10); return ($number[0] == ($mod ? (10 - $mod) : 0)); } PHP: <? var_dump( barcode('5 90123 412345 7'), // EAN-13, из википедии barcode('4 78123 456789 2'), // EAN-13, с сайта с описанием спецификации barcode('0 71737 04061 4'), // UCC-12, с пачки сигарет barcode('4 607002 22012 0') // EAN-13 с нулём, от какого-то коньяка, barcode('9 87 65432 10921 3') // ITF-14, из википедии ); Везде вернёт true.
прикольно. В zf это немного покрупнее (я про кол-во кода для проверки). А нет ли распознавальщика QR- и datamatrix-кодов на похапэ?
В Zend Framework всё покрупнее. В случае с EAN-проверяльщиками, крупный код из-за абстракции какой-нибудь: класс валидатор, класс EAN валидатор, класс EAN-13 для EAN валидатора. Читальщика QR у мну нет и в интернетах не нашёл. Можно поискать решения на Java и C#, на этих языках что-нить точно должно быть.
Почему? Ты же умный. Умный и красивый. Умный, красивый и добрый. Умный, красивый, добрый и отзывчивый. P.S. Ну как, помог мой врождённый талант к подлизыванию?
IBAN мне точно не понадобится. ISBN делал потому что делать было нечего, а EAN нужен был. Вот и решил сам разобраться в спецификации. Познания это интересно, а чего же интересного в скачивании готового?