19

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

Your comment:
[p] [b] [i] [u] [s] [quote] [pre] [br] [code] [url] [email] strip help 2000

Enter a maximum of 2000 characters.
Improve the presentation of your text with the following formatting tags:
[p]paragraph[/p], [b]bold[/b], [i]italics[/i], [u]underline[/u], [s]strike[/s], [quote]citation[/quote], [pre]as is[/pre], [br]line break,
[url]http://www.izend.org[/url], [url=http://www.izend.org]site[/url], [email]izend@izend.org[/email], [email=izend@izend.org]izend[/email],
[code]command[/code], [code=language]source code in c, java, php, html, javascript, xml, css, sql, bash, dos, make, etc.[/code].