Na altura tinha feito só para detectar o BI qualquer das maneiras tive a ler hoje uma pagina sobre isto (por isso que me lembrei deste script e decidir colocar aqui) e dizem que este calculo também serve para o NIF, eu exprimentei com o meu e deu lol.
Bem fica aqui uma demo: http://upgaming-hq.com/drone/bi.php
EDIT: atenção a 2ª caixa de texto é para introduzir o algarismo que se encontra ao lado do número de BI (aquele algarismo que por muitos é conhecido pelo número de pessoas que tem o mesmo nome que o nosso, mas não não é.. serve mesmo para verificação).
EDIT 2: Para testar com o NIF introduzem os 8 primeiros algarismos na 1ª box e o ultimo na 2ª.
Código (PHP):
<input type="text" name="bi" maxlength="8" size="10" />
<input type="text" name="bi2" maxlength="1" size="2" />
<input type="submit" name="submit" />
</form>
<?
if ($_POST) {
$nr_bi = $_POST['bi'];
while (strlen($nr_bi) < 8) {
$nr_bi = "0" . $nr_bi;
}
$nr_bi .= $_POST['bi2'];
echo $nr_bi;
$calc = 9 * $nr_bi[0] + 8 * $nr_bi[1] + 7 * $nr_bi[2] + 6 * $nr_bi[3] + 5 * $nr_bi[4] + 4 * $nr_bi[5] + 3 * $nr_bi[6] + 2 * $nr_bi[7] + $nr_bi[8];
$calc = $calc % 11;
if ((int)$calc == 0) {
echo " (verdadeiro)";
} else {
echo " (falso)";
}
}
?>












