Vous pourrait également utiliser le SPL pour filtrer le contenu d'un DirectoryIterator
en utilisant votre fonction isImage
en étendant la classe abstraite FilterIterator
.
class ImageIterator extends FilterIterator {
public function __construct($path)
{
parent::__construct(new DirectoryIterator($path));
}
public function accept()
{
return isImage($this->getInnerIterator());
}
}
Vous pouvez ensuite utiliser iterator_count
(ou implémenter l'interface Countable
et utiliser la fonction native count
) pour déterminer le nombre d'images. Par exemple:
$images = new ImageIterator('/path/to/images');
printf('Found %d images!', iterator_count($images));
En utilisant cette approche, selon la façon dont vous devez utiliser ce code, il serait plus judicieux de déplacer la fonction isImage
dans la classe ImageIterator
d'avoir tout soigneusement enveloppé dans un seul endroit.
C'est ce que j'allais poster. Je pense que votre solution est la voie à suivre. – Stuart
AWSOME! Exactement ce que je cherchais! – PHLAK