Last active
March 6, 2018 21:10
-
-
Save Ricardolau/288a7931e0aeab89a9b87adb8f181c07 to your computer and use it in GitHub Desktop.
funcion para Comprobar codbarras
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?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