Salut camarade,
bon pour faire simple, suffit de lire la doc du DSI du CNRS sur la normalisation des codes SIREN et SIRET où tout est expliqué. (le lien ici)
Je reprend donc, il y a un algorithme comme tu l'as justement fais remarqué qui s'appelle "Formule de Luhn" qui permet de vérifier si un numéro de SIREN/SIRET est valide. Pour ne pas te mâcher le travail complètement je vais te fournir le dit algo que je viens de retranscrire en PHP. (Le code est dirty, j'ai fais ça à l'arrache sur un coin de table :))
function is_luhn($numero)
{
$sum = 0;
for ($i = strlen($numero) - 1; $i >= 0; $i--)
{
$mult = ((strlen($numero) - $i)%2 == 0) ? 2 : 1;
$number = (string)($numero$i] * $mult);
if (strlen($number) > 1)
{
for ($j=0; $j < strlen($number); $j++)
$sum += (int)$number$j];
}
else
{
$sum += (int)$number;
}
}
return ($sum%10 == 0);
}
Voilà avec ça tu es capable de savoir si un SIREN et/ou un SIRET son valide sur la structure.
Si je me suis trompé ou si je ne répond pas à ta question n'hésites pas ;).