I am reading through a directory with some pictures and such using a pretty simple implementation of readdir() like the following:
if ($handle = opendir($path)) {
while (false !== ($szFilename = readdir($handle))) {
if ($szFilename[0] !== '.') {
if (is_file($path.$szFilename)) {
// do stuff
}
}
}
}
The problem that I am having is that the files are not being read in alphabetical order as the docs for readdir() state:
Returns the filename of the next file
from the directory. The filenames are
returned in the order in which they
are stored by the filesystem.
Another weird thing is that, on the local testing server, the same code works great. This is running on a server using the LAMP stack in both cases.
I know that I can build an array and just sort it, but I was wondering if I was missing something in what I was doing.
Best Solution
Alphabetical order :: I think you misread the snippet you quoted...
The fact that 'ls' would display the files in (usually) alphabetical order does not mean that's how they are stored on the filesystem. PHP is behaving as spec, I'm afraid.
You may want to consider using scandir as the basis for your efforts, if alphabetical sorting is a must. :)