Conditions | 7 |
Paths | 7 |
Total Lines | 31 |
Lines | 0 |
Ratio | 0 % |
Changes | 0 |
1 | <?php |
||
25 | public static function validate($insee, $length = 9) |
||
26 | { |
||
27 | if (!is_numeric($insee)) { |
||
28 | return false; |
||
29 | } |
||
30 | |||
31 | if (strlen($insee) != $length) { |
||
32 | return false; |
||
33 | } |
||
34 | |||
35 | /** |
||
36 | * La poste support (French mail company) |
||
37 | * @link https://fr.wikipedia.org/wiki/SIRET#Calcul_et_validit%C3%A9_d'un_num%C3%A9ro_SIRET |
||
38 | * @link https://blog.pagesd.info/2012/09/05/verifier-numero-siret-poste/ |
||
39 | */ |
||
40 | $laPosteSiren = '356000000'; |
||
41 | if(strpos($insee, $laPosteSiren) === 0){ |
||
42 | return $laPosteSiren === (string) $insee ? true : array_sum(str_split($insee)) % 5 === 0; |
||
43 | } |
||
44 | |||
45 | $sum = 0; |
||
46 | for ($i = 0; $i < $length; ++$i) { |
||
47 | $indice = ($length - $i); |
||
48 | $tmp = (2 - ($indice % 2)) * $insee[$i]; |
||
49 | if ($tmp >= 10) { |
||
50 | $tmp -= 9; |
||
51 | } |
||
52 | $sum += $tmp; |
||
53 | } |
||
54 | return ($sum % 10) == 0; |
||
55 | } |
||
56 | } |
||
57 |