Если вы просто хотите исключить файлы, начинающиеся с точки ".", Вы можете сделать что-то вроде этого:
$files = readdir('/path/to/folder');
$files = array_filter($files, create_function('$a','return ($a[0]!=".");'));
Это вернет только файлы, которые не начинаются с точки "."
В Windows скрытые файлы работают по-разному, я не знаю, как их найти.