sto leggendo attraverso una directory con alcune immagini e tale utilizzando una piuttosto semplice implementazione di readdir() come il seguente:PHP readdir() non tornare i file in ordine alfabetico
if ($handle = opendir($path)) {
while (false !== ($szFilename = readdir($handle))) {
if ($szFilename[0] !== '.') {
if (is_file($path.$szFilename)) {
// do stuff
}
}
}
}
Il problema che sto avendo è che i file non vengono letti in ordine alfabetico, come la documentazione per readdir stato():
Restituisce il nome del file successivo dalla directory. I nomi file sono restituiti nell'ordine in cui sono memorizzati dal filesystem .
Un'altra cosa strana è che, sul server di test locale, lo stesso codice funziona alla grande. Questo è in esecuzione su un server utilizzando lo stack LAMP in entrambi i casi.
So che posso creare un array e solo ordinarlo, ma mi chiedevo se mi mancava qualcosa in quello che stavo facendo.
/me schiaffi sulla fronte scandir() è quello che stavo cercando. Grazie! – Buggabill
BTW: ls -U elenca i file nell'ordine in cui le loro voci di directory sono memorizzate nella directory. –
La funzione 'glob()' può anche aiutare qui. http://php.net/glob Per impostazione predefinita restituisce i file ordinati alfabeticamente. –