Include dotfiles excluding . and .. special dirs with .[!.]*
<?php
$all_files = array_merge(glob('.[!.]*'), glob('*'));
// or
$all_files = glob('{.[!.],}*', GLOB_BRACE);
?>(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)
glob — Находит файловые пути, которые совпадают с шаблоном
   Функция glob() ищет в текущей файловой системе пути, которые совпали
   с шаблоном pattern по правилам
   функции glob() стандартной C-библиотеки libc, которые аналогичны
   правилам стандартных командных оболочек.
  
   Поведение функции в системах Unix и macOS определяется реализацией
   функции glob() в системе. В ОС Windows реализация функции
   соответствует определению 1003.2 стандарта POSIX для функции glob() и включает
   расширение для обработки соглашения [!...]
   для отрицания диапазона.
  
patternШаблон. Параметр не раскрывает символы тильды и не подставляет параметры.
Специальные символы:
* — Соответствует нулю или большему количеству символов.
         
        ? — Соответствует ровно одному символу (любому символу).
         
        [...] — Соответствует одному символу из группы символов.
          Символ соответствует символу, который не входит в группу,
          если первый символ !.
         
        {a,b,c} — Соответствует одной строке из группы
          строк, разделённых запятой, если указали флаг GLOB_BRACE.
         
        \ — Экранирует следующий символ,
          если только не указали флаг GLOB_NOESCAPE.
         
        flags
       Константа семейства GLOB_*.
      
   Функция возвращает массив с совпадениями путей файлов или директорий,
   пустой массив, если файлы не совпали, или false, если возникла ошибка.
   Названия отсортируются в буквенно-цифровом порядке, если только
   не указали флаг GLOB_NOSORT.
  
Пример #1 Способ подмены функцией glob() функции opendir() и дружественных функции
<?php
foreach (glob("*.txt") as $filename) {
    echo "Размер файла $filename в байтах — " . filesize($filename) . "\n";
}
?>Вывод приведённого примера будет похож на:
Размер файла funclist.txt в байтах — 44686 Размер файла funcsummary.txt в байтах — 267625 Размер файла quickref.txt в байтах — 137820
Пример #2 Пример с усложнённым шаблоном
<?php
foreach (glob("path/*/*.{txt,md}", \GLOB_BRACE) as $filename) {
    echo "$filename\n";
}
?>Вывод приведённого примера будет похож на:
path/docs/mailinglist-rules.md path/docs/README.md path/docs/release-process.md path/pear/install-pear.txt path/Zend/README.md
Замечание: Функция неприменима для работы с удалёнными файлами, поскольку файл должен быть доступен через файловую систему сервера.
Замечание: Функция недоступна в системах наподобие старой Sun OS.
