Génial c'est nickel, j'ai essayé un peu de comprendre la fonction sur php.net et en gros, dites moi si je me trompe, pour expliquer la syntaxe :
sprintf("%05d",$value)
% = Chaque spécification de conversion est constituée d'un signe de pourcentage (%), suivi d'un ou plusieurs des éléments suivants, dans cet ordre :
0 = Un remplisseur optionnel qui indique quel caractère sera utilisé pour compléter le résultat jusqu'à la longueur requise. Ce peut être le caractère d'espace, ou le caractère 0. Par défaut, le remplissage se fait avec des espaces. Un autre caractère de remplissage peut être spécifié en le préfixant avec un guillemet simple (') : voir les exemples ci-dessous.
5 = Un nombre optionnel, spécificateur de taille indique le nombre minimum de caractères que cette conversion doit fournir en résultat.
d = l'argument est traité comme un entier, et présenté comme un nombre décimal signé