12

validatesiren

validate_siren
SYNOPSIS

validate_siren($siren)

DESCRIPTION
CODE
  1. function validate_siren($siren) {
  2.     return preg_match('/^\d{9}$/', $siren) and checksum_siren($siren);
  3. }
validate_siret
SYNOPSIS

validate_siret($siret, $siren=false)

DESCRIPTION
CODE
  1. function validate_siret($siret, $siren=false) {
  2.     return preg_match('/^\d{14}$/', $siret) and checksum_siren($siret) and (!$siren or strncmp($siren, $siret, strlen($siren)) == 0);
  3. }
validate_kbis
SYNOPSIS

validate_kbis($kbis, $siren=false)

DESCRIPTION
CODE
  1. function validate_kbis($kbis, $siren=false) {
  2.     return preg_match('/(^\d{9})\s+/', $kbis, $r) and validate_siren($r[1], $siren);
  3. }
checksum_num
SYNOPSIS

checksum_siren($num)

DESCRIPTION
CODE
  1. function checksum_siren($num) {
  2.     $len=strlen($num);
  3.     if (!($len == 9 or $len == 14)) {
  4.         return false;
  5.     }
  6.  
  7.     $sum=0;
  8.     for ($i=0; $i < $len; $i++) {
  9.         if ($i%2==0) {
  10.             $sum += $num[$i];
  11.         }
  12.         else {
  13.             $n=2*$num[$i];
  14.             $sum += $n > 9 ? 1 + ($n - 10) : $n;
  15.         }
  16.     }
  17.  
  18.     return ($sum % 10) == 0;
  19. }

Comments

To add a comment, click here.