[Linux-bruxelles] [HS] PHP et numéro de registre national belge

Serge SMEESTERS sergesmeesters at gmail.com
Jeu 19 Déc 18:17:52 CET 2013


> Voici ce que je viens de pondre pour vérifier la validité des numéro
> de registre national belge...
[...]

Zut, c'était pas la bonne version dans mon presse papier...
Voici :

    function str_only_digit( $str )
    {
        $res = "";
        $length = strlen( $str );
        for( $i = 0 ; $i < $length ; ++$i )
        {
            $char = $str[ $i ];
            if( is_numeric( $char ) )
                $res .= $char;
        }
        return $res;
    }

    function is_numregnat_valid( $num )
    {
        $numdigits = str_only_digit( $num );
        $year2d = substr( $numdigits, 0, 2 );
        if( intval( $year2d ) > 11 )
            $year = intval( "19".$year2d );
        else
            $year = intval( "20".$year2d );
        $month = intval( substr( $numdigits, 2, 2 ) );
        $day = intval( substr( $numdigits, 4, 2 ) );
        $date = date_create( "$year-$month-$day" );
        return (
            intval( substr($numdigits, 9, 2) )
            ==
            97 - (
                intval(
                    ($date < date_create("2000-01-01") ? "" : "2" )
                    .substr( $numdigits, 0, 9 )
                ) % 97
            )
        );
    }



Plus d'informations sur la liste de diffusion Linux-bruxelles