meerdere nullen voor een getal
Ik ben ebzig met een foto-site en ik rename elke foto naar een getal van af 1 tot het aanal foto's. Alleen nu wil ik dat foto 1 niet de naam 1 krijgt maar 001 en 22 moet dan 022 worden en 233 blijft gewoon 233 (zomaar een voorbeeld). Hoe kan ik dit makkelijk doen. De counter wordt automatisch opgehoogd. Ik heb al met str_pad geprobeerd, maar dit werkt niet met de string '0', bovendien moet ik de int van de teller steeds casten naar een string. iemand een idee?
Een mogelijkheid is dat je eerst het aantal getallen binnen je string telt en als die voldoet aan <3 cijfers dat er dan een of 2 nullen voor worden gezet.
Code (php)
erg simpel ;)
EDIT: $b is hier het cijfer en het is hier met max 5 cijfers ;)
EDIT2: ff korter gemaakt..
Gewijzigd op 01/01/1970 01:00:00 door Leroy Boerefijn
ach ja, idd. Bedankt!
je kunt het trouwens ook met een switch doen.. maar ik gaf deze omdat ik die nog had liggen..
- $i is het getal dat jij als basis gaat gebruiken voor de naam
- De 0 achter % geeft aan waarmee je het getal gaat aanvullen
- De 5 geeft aan hoeveel karakters het resultaat moet bevatten
- d geeft aan welk datatype wordt gebruikt
Bovenstaand voorbeeld levert op: 00002
Dus met 4 voorloopnullen, het getal 20 zal als resultaat 00020 geven.
@ Leroy, precies wat ik bedoelde :P
Frank zijn oplossing is beter eigenlijk: die functie is er eignelijk voor gemaakt om zoiets te realiseren. Het is ook nog eens korter qua script.
idd, zeker als je met 10 cijfers aan de slag moet. Maar ik ken nog niet alle functies uit mn hoofd dus was dit ook een goede oplossing. Maar voortaan gebruik ik die van Frank natuurlijk ;-)
Cees en ik zijn de hele middag bezig geweest met een foto-systeem, maar hij wilde de foto's maar niet goed sorteren. Blijkt het natuurlijk weer met zo'n simpel regeltje code helemaal te lukken.
Code (php)
Standaard functie sprintf is beter maar had even niks te doen
Gewijzigd op 01/01/1970 01:00:00 door Thijs X