В дополнение к использованию zombat из DirectoryIterator, также может иметь смысл создать собственный специализированный класс фильтров, чтобы упростить жизнь (см. Разницу с циклами foreach
) и сделать ее более пригодной для повторного использования.
class DirectoryFilterThumbs extends FilterIterator {
public function __construct($path) {
parent::__construct(new DirectoryIterator($path));
}
public function accept() {
// Use regex or whatever you like here
return ($this->isFile() && strpos($this->getFilename(), "_thumb.") === FALSE);
}
}
$files = new DirectoryFilterThumbs("/dir/path");
foreach ($files as $file) {
echo $file->getFilename() . PHP_EOL;
}
Конечно, если нет необходимости делать это в нескольких местах, тогда вполне подходит простая комбинация DirectoryIterator / condition, предоставленная zombat.