Lo principal sería saber el algoritmo q se usa . y luego implementarlo en PHP .. 
 
De un ejemplo javascript q encontré hice la versión en PHP:  
 Código PHP:
    <?php
function validar_dni($dni,$letra){
 $cadena = 'TRWAGMYFPDXBNJZSQVHLCKET';
 $posicion = $dni % 23;
 $letra_ok=substr($cadena,$posicion,1);
 
 if ($letra_ok == strtoupper($letra)){
     return true;
 } else {
     return false;
 }
}
 
if (validar_dni(35451571,'letra')){
    echo "correcto";
} else {
    echo "no correcto";
}
 
?>    
  Lo probé con un DNI y funcionó xD ... Pruebalo y nos comentas .. 
(el DNI del ejemplo no es q usé) 
Un saludo,