Denna metod kontrollerar ett svenskt personnummer och returnerar true (1) om personnummret stämmer och false (0) om det inte stämmer.
Personnummret skall anges utan bindestreck.
Demonstration finns här.
[kod]
<?
function checkPnr($pnr)
{
if (strlen($pnr) != 10) die("Felaktigt angivet personnummer! Ange personnummret utan bindestreck, totalt 10 siffror.");
$n = 2;
// Räkna fram kontrollsumman
for ($i=0; $i<9; $i++)
{
$tmp = $pnr[$i] * $n;
($tmp > 9) ? $sum += 1 + ($tmp % 10) : $sum += $tmp;
($n == 2) ? $n = 1 : $n = 2;
}
// Lägg till sista siffran (kontrollsiffran), resultatet skall bli jämt tiotal, returnera true/false
return !( ($sum + $pnr[9]) % 10);
}
if (checkPnr("7410291234"))
{
echo "Korrekt personnummer!";
}
else
{
echo "Felaktigt personnummer!";
}
?>
[/kod]
------------------
"Med ett schysst järnrör slår man hela världen med häpnad" - Socker-Conny
Personnummret skall anges utan bindestreck.
Demonstration finns här.
[kod]
<?
function checkPnr($pnr)
{
if (strlen($pnr) != 10) die("Felaktigt angivet personnummer! Ange personnummret utan bindestreck, totalt 10 siffror.");
$n = 2;
// Räkna fram kontrollsumman
for ($i=0; $i<9; $i++)
{
$tmp = $pnr[$i] * $n;
($tmp > 9) ? $sum += 1 + ($tmp % 10) : $sum += $tmp;
($n == 2) ? $n = 1 : $n = 2;
}
// Lägg till sista siffran (kontrollsiffran), resultatet skall bli jämt tiotal, returnera true/false
return !( ($sum + $pnr[9]) % 10);
}
if (checkPnr("7410291234"))
{
echo "Korrekt personnummer!";
}
else
{
echo "Felaktigt personnummer!";
}
?>
[/kod]
------------------
"Med ett schysst järnrör slår man hela världen med häpnad" - Socker-Conny
Kommentera