Pb de valeur numérique dans une construction dynamique

Par Frank Hélin, il y a 11 ans


Bonjour,

Je pensais avoir la solution à un problème grâce à une réponse sur le forum , mais je me suis rendu que cette solution avait ses limites. En effet, le code qui suit me convient bien jusqu'à la valeur 99, au delà, ça ne colle plus car je me retrouve avec une chaîne à 6 chiffres, hors elle devrait toujours être de 5 chiffres.

for ($i = 1; $i <= $numbfiles; $i++) { $img[$i] = ["url" => ROOT_LIEN . '0000' . $i . '.jpg', "urlt" => ROOT_LIEN . '0000' . $i . '-thumb.jpg'];

Quelqu'un a une idée ? (sachant que mes fichiers jpg doivent impérativement être formaté comme suit : 00001.jpg et 00001-thumb.jpg)

Merci par avance !

:-)

5 réponses

TransientDev, il y a 11 ans

Bonjour,
je pense que ceci devrait faire l'affaire ( a la place de '0000' . $i)

function cinqChiffre($number) { $length = strlen((string) $nombre); $final = ''; for($i =0; $i< (5-$length); i++) { $final .= '0'; } return $final . $nombre; }

Edit: merci pour l'erreur ^^ c'est corrigé

Frank Hélin, il y a 11 ans

On dirait que ton script comporte une erreur mais je ne parviens pas à la situer...

Frank Hélin, il y a 11 ans

Ah, vu, il manque des $ à i.

skp, il y a 11 ans

Bonjour, tu peux essayer avec ça :

for ($i = 1; $i <= $numbfiles; $i++) { $monNombre = sprintf("%'05d", $i); $img[$i] = ["url" => ROOT_LIEN . $monNombre . '.jpg', "urlt" => ROOT_LIEN . $monNombre . '-thumb.jpg']; }
Frank Hélin, il y a 11 ans

Hey, super cette fonction sprintf, je ne connaissais pas. Merci à toi ! :-)