Skip to content

Instantly share code, notes, and snippets.

@Ricardolau
Last active March 6, 2018 21:10
Show Gist options
  • Save Ricardolau/288a7931e0aeab89a9b87adb8f181c07 to your computer and use it in GitHub Desktop.
Save Ricardolau/288a7931e0aeab89a9b87adb8f181c07 to your computer and use it in GitHub Desktop.
funcion para Comprobar codbarras
<?php
function ComprobarCodbarras($codbarras){
// Objetivo
// Comprobar que el digito de control del codbarras recibido es correcto.
// fuente: http://mimosa.pntic.mec.es/jgomez53/matema/practica/digcontrol.htm
$ultimo_digito = substr($codbarras, -1); // Obtenermos digito de control
$codbarras_sinDC= substr($codbarras, 0, -1); // Obtenemos codbarras sin digito de control
$cod_array= str_split($codbarras_sinDC); // Creamos array sin digito de control
$position =0;
foreach ($cod_array as $valor){
$position = $position +1 ; // Recuerda que un array empieza posicion 0 , no puedes utilizar Key
echo 'Resto posicion '.($position%2).'<br/>';
if ($position%2 === 0){
// Posicion par
echo 'Valor= '.$valor.' --> 3='.(strval($valor)*3).'<br/>';
$suma = $suma+(strval($valor)*3);
} else {
echo 'Valor= '.$valor.' --> 1='.strval($valor).'<br/>';
$suma = $suma+ strval($valor);
}
$digito_control = 10-($suma%10);
}
// Ahora comprobamos si el digito de control es igual al ultimo digito del codbarras.
if ($digito_control === strval($ultimo_digito)){
$respuesta = 'OK';
} else {
$respuesta = 'error';
}
}
?>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment