Fonctions permettant de contrôler la validité des numéros SIREN, SIRET et codes-barres de type EAN-13.
Utilisation :
- is_siret(numero_siret) // pour contrôler le numéro SIRET
- is_siren(numero_siren) // pour contrôler le numéro SIREN
- is_ean13(code_ean13) // pour contrôler un code-barres de type EAN13
Ces différentes fonctions renvoient un code erreur :
- 0 : numéro valide
- 1 : nombre de chiffres incorrects
- 2 : valeur non numérique
- 3 : numéro invalide
Exemple d'utilisation :
Créer un tableau d'erreurs :
$erreurs[0] = "numéro valide";
$erreurs[1] = "nombre de chiffres incorrect";
$erreurs[2] = "valeur non numérique";
$erreurs[3] = "numéro invalide";
Pour afficher directement le résultat :
echo $erreurs[is_siren("732829320")];
Pour effectuer un test :
if (is_siren("732829320") == 0)
{
// instructions si numéro valide
}
else
{
// instructions si numéro invalide
}
Source / Exemple :
// fonction permettant de contrôler la validité d'un numéro SIREN
function is_siren($siren)
{
if (strlen($siren) != 9) return 1; // le SIREN doit contenir 9 caractères
if (!is_numeric($siren)) return 2; // le SIREN ne doit contenir que des chiffres
// on prend chaque chiffre un par un
// si son index (position dans la chaîne en commence à 0 au premier caractère) est impair
// on double sa valeur et si cette dernière est supérieure à 9, on lui retranche 9
// on ajoute cette valeur à la somme totale
for ($index = 0; $index < 9; $index ++)
{
$number = (int) $siren[$index];
if (($index % 2) != 0) { if (($number *= 2) > 9) $number -= 9; }
$sum += $number;
}
// le numéro est valide si la somme des chiffres est multiple de 10
if (($sum % 10) != 0) return 3; else return 0;
}
// fonction permettant de contrôler la validité d'un numéro SIRET
function is_siret($siret)
{
if (strlen($siret) != 14) return 1; // le SIRET doit contenir 14 caractères
if (!is_numeric($siret)) return 2; // le SIRET ne doit contenir que des chiffres
// on prend chaque chiffre un par un
// si son index (position dans la chaîne en commence à 0 au premier caractère) est pair
// on double sa valeur et si cette dernière est supérieure à 9, on lui retranche 9
// on ajoute cette valeur à la somme totale
for ($index = 0; $index < 14; $index ++)
{
$number = (int) $siret[$index];
if (($index % 2) == 0) { if (($number *= 2) > 9) $number -= 9; }
$sum += $number;
}
// le numéro est valide si la somme des chiffres est multiple de 10
if (($sum % 10) != 0) return 3; else return 0;
}
// fonction permettant de contrôler la validité d'un code-barres de type EAN-13
function is_ean13($ean13)
{
if (strlen($ean13) != 13) return 1; // le code-barres doit contenir 13 caractères
if (!is_numeric($ean13)) return 2; // le code-barres ne doit contenir que des chiffres
// on prend chaque chiffre un par un
// si son index (position dans la chaîne en commence à 0 au premier caractère) est impair
// on triple sa valeur
// on ajoute cette valeur à la somme totale
for ($index = 0; $index < 12; $index ++)
{
$number = (int) $ean13[$index];
if (($index % 2) != 0) $number *= 3;
$sum += $number;
}
$key = $ean13[12]; // clé de contrôle égale au dernier chiffre
// la clé de contrôle doit être égale à : 10 - (reste de la division de la somme des 12 premiers chiffres)
if (10 - ($sum % 10) != $key) return 3; else return 0;
}
Conclusion :
Pour plus d'informations, consulter les pages Wikipedia :
- SIRET :
http://fr.wikipedia.org/wiki/SIREN
- SIREN :
http://fr.wikipedia.org/wiki/SIRET
- EAN 13 :
http://fr.wikipedia.org/wiki/Ean_13
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.