«

»

Gen 25

Calcolare check-digit degli EAN 13 con PHP

Questa funzione permette di calcolare il check digit degli EAN13, utile sia dovendo generarlo che dovendo verificarne la lettura corretta

function get_ean_checkdigit($ean12, $full){
 
	$ean12 =(string)$ean12;
	// 1. Sommo le posizioni dispari
	$even_sum = $ean12{1} + $ean12{3} + $ean12{5} + $ean12{7} + $ean12{9} + $ean12{11};
	// 2. le moltiplico x 3
	$even_sum_three = $even_sum * 3;
	// 3. Sommo le posizioni pari
	$odd_sum = $ean12{0} + $ean12{2} + $ean12{4} + $ean12{6} + $ean12{8} + $ean12{10};
	// 4. Sommo i parziali precedenti
	$total_sum = $even_sum_three + $odd_sum;
	// 5. Il check digit è il numero più piccolo sottomultiplo di 10
	$next_ten = (ceil($total_sum/10))*10;
	$check_digit = $next_ten - $total_sum;
 
	if($full==true) { // Ritorna tutto l'ean
		return $ean12.$check_digit;
	}
	else { // Ritorna solo il check-digit
		return $check_digit;
	}
}