Dans le code correspondant de fichier typique:correspondant à des extensions de fichiers multiples avec fnmatch()
while (false !== ($file = readdir($handle))) {
if ($file !== "." && $file !== ".." && fnmatch($mask, $file)) {
$dirList[] = $file;
}
}
Je tentais d'utiliser un modèle d'extension de plusieurs fichiers comme ceci:
$mask = "*.{jpg,png,gif}";
mais il n'a pas travail. Aucun fichier ne correspond. C'est plutôt étrange puisque le même modèle fonctionne très bien dans un terminal. Cela fonctionne aussi parfaitement avec glob(), en retournant les fichiers que je veux. Je sais qu'il n'y a rien de mal avec le reste du code car l'utilisation de "* .jpg" comme masque fonctionne également avec fnmatch. Fnmatch n'était-il pas supposé supporter les mêmes patterns que ceux disponibles dans un shell?
* (svn) * [file.c] (http://svn.php.net/viewvc/php/php-src/trunk/ext/standard/file.c?view=markup) - pour ceux qui veux voir comment il est mis en œuvre – Gordon
Intéressant. En théorie, vous pouvez passer '0x20' si votre libc supporte _EXTMATCH. – mario
Merci. J'ai choisi d'utiliser glob() à la place, comme vous l'avez suggéré, car cela supporte ce dont j'ai besoin. Peut-être que dans une future version de PHP cela sera supporté via cette constante FNM_EXTMATCH. – devius