Advertisement
Guest User

Kontroller fødselnummer (Norsk)

a guest
Mar 6th, 2014
231
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.38 KB | None | 0 0
  1. <?
  2.     // bool control_fnr ( string fødselnummer )
  3.     //
  4.     // Eksempel:
  5.     //
  6.     // if ( control_fnr ( "1234578910" ) == true )
  7.     // {
  8.     //    [ Fødselsnummer er riktig ]
  9.     // }
  10.     // else
  11.     // {
  12.     //    [ Fødselsnummer er feil ]
  13.     // }
  14.  
  15.     function control_fnr ( $pid )
  16.     {
  17.         if ( strlen ( $pid ) != 11 )
  18.         {
  19.             return false;
  20.         }
  21.    
  22.         $d_00       = substr ( $pid, 0, 1 );
  23.         $d_01       = substr ( $pid, 1, 1 );
  24.         $m_00       = substr ( $pid, 2, 1 );
  25.         $m_01       = substr ( $pid, 3, 1 );
  26.         $y_00       = substr ( $pid, 4, 1 );
  27.         $y_01       = substr ( $pid, 5, 1 );
  28.         $i_00       = substr ( $pid, 6, 1 );
  29.         $i_01       = substr ( $pid, 7, 1 );
  30.         $i_02       = substr ( $pid, 8, 1 );
  31.        
  32.         $k_00       =
  33.         (
  34.             11 -
  35.             (
  36.                 (
  37.                     ( $d_00 * 3 )       +
  38.                     ( $d_01 * 7 )       +
  39.                     ( $m_00 * 6 )       +
  40.                     ( $m_01 * 1 )       +
  41.                     ( $y_00 * 8 )       +
  42.                     ( $y_01 * 9 )       +
  43.                     ( $i_00 * 4 )       +
  44.                     ( $i_01 * 5 )       +
  45.                     ( $i_02 * 2 )
  46.                 ) %
  47.                 11
  48.             )
  49.         );
  50.        
  51.         $k_01       =
  52.         (
  53.             11 -
  54.             (
  55.                 (
  56.                     ( $d_00 * 5 )       +
  57.                     ( $d_01 * 4 )       +
  58.                     ( $m_00 * 3 )       +
  59.                     ( $m_01 * 2 )       +
  60.                     ( $y_00 * 7 )       +
  61.                     ( $y_01 * 6 )       +
  62.                     ( $i_00 * 5 )       +
  63.                     ( $i_01 * 4 )       +
  64.                     ( $i_02 * 3 )       +
  65.                     ( $k_00 * 2 )
  66.                 ) %
  67.                 11
  68.             )
  69.         );
  70.        
  71.         $kpid      = sprintf (
  72.             "%d%d%d%d%d%d%d%d%d%d%d",
  73.             $d_00,
  74.             $d_01,
  75.             $m_00,
  76.             $m_01,
  77.             $y_00,
  78.             $y_01,
  79.             $i_00,
  80.             $i_01,
  81.             $i_02,
  82.             $k_00,
  83.             $k_01
  84.         );
  85.        
  86.         if ( strcmp ( $pid, $kpid ) == 0 )
  87.         {
  88.             return true;
  89.         }
  90.         else
  91.         {
  92.             return false;
  93.         }
  94.     }
  95. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement