chaine numerique

rom1
Invité n'ayant pas de compte PHPfrance

24 févr. 2012, 13:56

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

ViPHP
ViPHP | 2287 Messages

24 févr. 2012, 14:13

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
if(!@work()){ Nespresso(); } else { what(); }
______________________________

rom1
Invité n'ayant pas de compte PHPfrance

24 févr. 2012, 14:57

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 ?

ViPHP
xTG
ViPHP | 7331 Messages

24 févr. 2012, 15:05

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.

rom1
Invité n'ayant pas de compte PHPfrance

24 févr. 2012, 15:59

Ok merci encore,
J'essayerai ça ce soir