counting with leading zeros
- From: phplist@xxxxxxxxxxxxxxx (brian)
- Date: Wed, 26 Sep 2007 15:11:43 -0400
I have a directory that contains many images (no, not pr0n, unfortunately) and i'm working on an admin script for adding to it. I've got something that works alright but i'm wondering if there's a Better Way.
Each image is named like: foo_01.jpg, foo_02.jpg, bar_01.jpg, and so on. When adding a new image it should be assigned the next number in the series (the prefix is known). Thus, given the prefix 'bar' i do something like:
function getNextImage($path, $prefix)
{
$pattern = "/^${prefix}_([0-9]{2})\.[a-z]{3}$/";
$filenames = glob("${path}${prefix}*");
if (is_array($filenames) && sizeof($filenames))
{
sort($filenames);
/* eg. 'foo_32.jpg'
*/
$last = basename(array_pop($filenames));
/* pull the number from the filename
*/
$count = intval(preg_replace($pattern, '$1', $last));
/* increment, format with leading zero again if necessary,
* and return it
*/
return sprintf('%02d', ++$count)
}
else
{
return '01';
}
}
Note that there almost certainly will never be more than 99 images to a series. In any case, i don't care about there being more than one leading zero. One is what i want.
brian
.
- Follow-Ups:
- Re: [PHP] counting with leading zeros
- From: Jim Lucas
- Re: [PHP] counting with leading zeros
- From: Robert Cummings
- Re: [PHP] counting with leading zeros
- Prev by Date: Re: [PHP] IF's!
- Next by Date: Re: [PHP] counting with leading zeros
- Previous by thread: PDOStatement execute memory issue?
- Next by thread: Re: [PHP] counting with leading zeros
- Index(es):