It would be nice if someone could give me a regexp pattern for glob for getting below filenames:
1.jpg // this file
1_thumb.jpg
2.png // this file
2_thumb.png
etc...
returning the files without "_thumb". I have this pattern:
$numericalFiles = glob("$this->path/*_thumb.*");
and that give me all with "_thumb."
glob()
isn't the greatest at handling situations where you have complex requirements for file matching, as you've clearly noticed. I'd recommend using PHP's SPL library and taking advantage of the DirectoryIterator class.
$iterator = new DirectoryIterator("/dir/path");
foreach ($iterator as $file) {
if ($file->isFile() && preg_match("/^[0-9]+\./i",$file->getFilename())) {
echo $file->getFilename();
}
}
You can modify your criteria cleanly during the iteration (also, it's easy to modify the iterator if you ever needed recursive directory iteration).