- substr: documentation ( source)
- var_dump: documentation ( source)
- str_split: documentation ( source)
<?php
$ean = '0888440212609';
$code = substr($ean, 0, -1);
$sequence_ean8 = array(3, 1);
$sequence_ean13 = array(1, 3);
$sums = 0;
foreach(str_split($code) as $n => $digit) {
if (strlen($code)==7){
$sums += $digit * $sequence_ean8[$n % 2];
} elseif (strlen($code)==12){
$sums += $digit * $sequence_ean13[$n % 2];
} else {
echo "code length invalid";
}
}
$checksum = 10 - $sums % 10;
if($checksum == 10){
$checksum = 0;
}
var_dump($code . $checksum === $ean);