Page 1 sur 1

chaine numerique

Posté : 24 févr. 2012, 13:56
par rom1
Re-bonjour,
une petite question
voila j'ai une variable que je passe via un url definie de la sorte $image=01
Cette variable je la concatene a une chaine alpha qui represente l'emplacement de mon jpeg
en gros ca donne
$chemin='photo\image'.$image.'.jpg'
je souhaiterai incrémenter ou décrémenter ma variable $image pour passer d une photo a l autre mais est que ma variable restera sur 2 caracteres ?
$image=$image+1 donnera $image=02 ou $image=2 et dans ce cas y a til une solution pour obtenir 02?
merci

Re: chaine numerique

Posté : 24 févr. 2012, 14:13
par Calimero
Hello,

Non, comme tu le soupçonnes si tu l'utilises en tant que nombre entier (par exemple pour l'incrémenter) la valeur de ta variable sera convertie comme telle et le formatage (les zéros devant) sera perdu.

Tu peux utiliser sprintf() pour faire la concaténation et garantir le formatage à 4 chiffres, par exemple, comme ceci : ( fais attention au %04u dans ces exemples )
<?php
echo sprintf('/test/fichier%04u.jpg',8); // /test/fichier0008.jpg
echo sprintf('/test/fichier%04u.jpg',264); // /test/fichier0264.jpg

Re: chaine numerique

Posté : 24 févr. 2012, 14:57
par rom1
Merci Calimero,
Par contre est il possible de récupérer la chaîne dans une variable :

$chemin=sprintf('/test/fichier%04u.jpg',$image); <= cela marche t il ?

Re: chaine numerique

Posté : 24 févr. 2012, 15:05
par xTG
Oui bien sûr, le retour de sprintf() est une chaîne de caractère.
Donc le stocker dans une variable ou le transmettre à une fonction (comme echo) est tout à fait faisable.

Re: chaine numerique

Posté : 24 févr. 2012, 15:59
par rom1
Ok merci encore,
J'essayerai ça ce soir