Validar ccc con php
El Codigo de Cuenta Cliente consta de 4 numeros de entidad, 4 numeros de oficina, 2 digitos de control (el primero valida los numeros de entidad y oficina, y el segundo valida el numero de cuenta), y 10 digitos de numero de cuenta.
Necesitamosdos funciones, una que valide el numero, y otra que compruebe que el numero de control corresponde con ese numero:
function ccc_ok(&$ccc)
{
global $digitos;
$ccc=trim($ccc);
$patron_ok=ereg($s="^(${digitos}{4})-?(${digitos}{4})-?([0-9 *])([0-9 *])-?($digitos{10})$",$ccc,$v);
if (!$patron_ok)
return false;
$dc1=obtener_digito($v[1].$v[2]);
$dc2=obtener_digito($v[5]);
if ($v[3]==" " || $v[3]=="*") $v[3]=$dc1;
if ($v[4]==" " || $v[4]=="*") $v[4]=$dc2;
if ($v[3]==$dc1 && $v[4]==$dc2)
{
$ccc=$v[1].$v[2].$v[3].$v[4].$v[5];
return true;
} else return false;
}
function obtener_digito($valor){
$valores = array(1, 2, 4, 8, 5, 10, 9, 7, 3, 6);
if (strlen($valor)==8) $valor="00".$valor;
$control = 0;
for ($i=0; $i<10; $i++)
$control +=$valor[$i] * $valores[$i];
$control = 11 - ($control % 11);
if ($control == 11) $control = 0;
else if ($control == 10) $control = 1;
return $control;
}
0 comentarios