glob()
будет работать нормально. По какой-то причине он в стандартной библиотеке, используйте его!
Насколько я понимаю, glob()
сопоставляется почти напрямую с функцией glob()
в C-библиотеке вашей системы, что означает, что она, скорее всего, будет более эффективной, чем все, что вы делаете самостоятельно. Единственным ограничением является память: если у вас не хватает памяти, вам нужно либо дать PHP больше памяти, либо реорганизовать.
Если вы столкнулись с проблемами памяти, как насчет того, чтобы организовать свои файлы немного лучше? Миллион файлов в одной папке - это слишком много. Организуйте их как-нибудь. Если ваши файлы датированы, попробуйте упорядочить их по годам (а затем, возможно, месяцам), например:
basedir/
|---/2011
|---/2010
etc.