Ver Mensaje Individual
  #1 (permalink)  
Antiguo 06/01/2010, 15:48
Avatar de neodani
neodani
 
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 2 meses
Puntos: 20
Cómo validar PASAPORTE/DNI en php

Buenas,

Estoy haciendo una validación para saber si han introducido correctamente el DNI o el PASAPORTE

La validación del DNI la tengo casi lista, lo único que me falla es cuando introducen mas de una letra.

Alguien sabe como solucionarlo?

Código PHP:
Ver original
  1. function valida_dni($dni) // retorna false(0) si hay errror o el DNI validado y con letra si no hay error
  2. {
  3.    $str = trim($dni);
  4.    $str = str_replace("-","",$str);
  5.    $str = str_ireplace(" ","",$str);
  6.    $n = substr($str,0,strlen($str)-1);
  7.    $n = intval($n);
  8.    if (!is_int($n))
  9.    {
  10.       return 0;
  11.    }
  12.    $l = substr($str,-1);
  13.    if (!is_string($l))
  14.    {
  15.       return 0;
  16.    }
  17.    $letra = substr ("TRWAGMYFPDXBNJZSQVHLCKE", $n%23, 1);
  18.    if ( strtolower($l) == strtolower($letra))
  19.    {
  20.       return $n.$l;
  21.    }
  22.     else
  23.    {
  24.       return 0;
  25.    }
  26. }

En España el número del pasaporte es el mismo que el DNI. Ergo es la
validación del NIF. Pero fuera de España el PASAPORTE puede ser distinto¿? Qué patrón se usa para validar un pasaporte fuera de españa?

Muchas gracias de antemano!