Equivalent de la fonction TEXTE d Excel ? - PHP - Programmation
Marsh Posté le 20-10-2008 à 13:51:11
Salut.
Essaie
Code :
|
Marsh Posté le 20-10-2008 à 15:47:26
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é
Marsh Posté le 20-10-2008 à 15:57:20
tu as bien lu
Marsh Posté le 20-10-2008 à 12:33:51
Je cherche une fonction equivalente a texte() de Execl, afin de reformater un nombre
Ce nombre provient d'une colone Id auto incrémentée de 11 chiffres qui en théorie n'en depassera jamais 5 et pour le moment je veux travailler uniquement sur 5 chiffres.
Je veux récuperer "99".$id ou $id sera FORCEMENT sur 5 chiffres.
Sous Excel il me suffit de faire un TEXTE($id;"00000" ) pour qu un 123 donne 00123, qu'un 1 donne 00001 ... etc
Je ne trouve pas d'équivalent php, alors j ai du créer un petit script tout moche :
$str = strlen($id); // je recup la longueur de la chaine
if ($str == "1" )
{$new="990000".$id;}
else if ($str == "2" )
{$new="99000".$id;}
else if ($str == "3" )
{$new="9900".$id;}
else if ($str == "4" )
{$new="990".$id;}
else if ($str == "5" )
{$new="99".$id;}
else {$new="99".$id;} // inutile mais au cas ou je deciderai par la suite de passer a 6 chiffres
Je pense qu il existe mieux ?