Código de PHP - Validación de CIF-NIF

Imágen de perfil

Validación de CIF-NIFgráfica de visualizaciones


PHP

estrellaestrellaestrellaestrellaestrella(2)
Actualizado el 06 de Noviembre del 2015 por Fernando (Creado el 30 de Octubre del 2015)
1.025 visualizaciones desde el 30 de Octubre del 2015. Una media de 21 por semana
Función para la validación de NIF/CIF de España.
http://lab.fawno.com/2015/08/27/validacion-de-cif-nif/

1
estrellaestrellaestrellaestrellaestrella(2)

Actualizado el 06 de Noviembre del 2015 (Creado el 30 de Octubre del 2015)gráfica de visualizaciones de la versión: 1
1.026 visualizaciones desde el 30 de Octubre del 2015. Una media de 21 por semana
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?php
  function cif_validation ($cif) {
    $cif = strtoupper($cif);
      if (preg_match('~(^[XYZ\d]\d{7})([TRWAGMYFPDXBNJZSQVHLCKE]$)~', $cif, $parts)) {
        $control = 'TRWAGMYFPDXBNJZSQVHLCKE';
        $nie = array('X', 'Y', 'Z');
        $parts[1] = str_replace(array_values($nie), array_keys($nie), $parts[1]);
        $cheksum = substr($control, $parts[1] % 23, 1);
        return ($parts[2] == $cheksum);
      } elseif (preg_match('~(^[ABCDEFGHIJKLMUV])(\d{7})(\d$)~', $cif, $parts)) {
        $checksum = 0;
        foreach (str_split($parts[2]) as $pos => $val) {
          $checksum += array_sum(str_split($val * (2 - ($pos % 2))));
        }
        $checksum = ((10 - ($checksum % 10)) % 10);
        return ($parts[3] == $checksum);
      } elseif (preg_match('~(^[KLMNPQRSW])(\d{7})([JABCDEFGHI]$)~', $cif, $parts)) {
        $control = 'JABCDEFGHI';
        $checksum = 0;
        foreach (str_split($parts[2]) as $pos => $val) {
          $checksum += array_sum(str_split($val * (2 - ($pos % 2))));
        }
        $checksum = substr($control, ((10 - ($checksum % 10)) % 10), 1);
        return ($parts[3] == $checksum);
      }
      return false;
  }
?>



Comentarios sobre la versión: 1 (2)

Imágen de perfil
Miguel Angel
07 de Noviembre del 2015
estrellaestrellaestrellaestrellaestrella
Super, muy útil.
Responder
Imágen de perfil
xve
09 de Noviembre del 2015
estrellaestrellaestrellaestrellaestrella
No ha dejado ningún comentario
Responder

Comentar la versión: 1

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios

http://lwp-l.com/s3325