AFAIK, glob
не возвращает имена файлов, начинающиеся с точки, поэтому .342342.jpg
не возвращается.
Ваше регулярное выражение if (preg_match("[.a-zA-Z0-9]", $file )) {
соответствует именам файлов, которые содержат .a-zA-Z0-9
(то есть. xxx.a-zA-Z0-9yyy
) Полагаю, вам нужны имена файлов, содержащие точку или алфавит, поэтому ваше регулярное выражение становится:
if (preg_match("/^[.a-zA-Z0-9]+$/", $file )) {