par
AB » 11 juil. 2011, 22:42
epommate2 m'avait mis sur la voie, mais j'avais pas su exploiter.
T'as bien fait d'insister
En fait il fallait déclarer le mode du RegexIterator avant le flag USE_KEY. Je pensais qu'il devait y avoir une valeur par défaut et ce qui ne m'a pas aidé c'est que cela ne renvoyait pas de message d'erreur, car effectivement la valeur du flag RegexIterator::USE_KEY (=1) à une correspondance dans le mode RegexIterator::GET_MATCH (=1)
Bon donc le code complet avec RegexIterator et FilesystemIterator:
<?php
$dossier = 'PHOTOS/';
$matche = '#^a#ui';
$f = new FilesystemIterator($dossier, FilesystemIterator::KEY_AS_FILENAME);
$r = new RegexIterator($f, $matche, RegexIterator::MATCH, RegexIterator::USE_KEY);
// équivalent $r = new RegexIterator($f, $matche, 0, 1);
foreach ($r as $t)
{
echo $t->getFilename();
}
?>
[b]epommate2[/b] m'avait mis sur la voie, mais j'avais pas su exploiter.
T'as bien fait d'insister :)
En fait il fallait déclarer le mode du RegexIterator avant le flag USE_KEY. Je pensais qu'il devait y avoir une valeur par défaut et ce qui ne m'a pas aidé c'est que cela ne renvoyait pas de message d'erreur, car effectivement la valeur du flag RegexIterator::USE_KEY (=1) à une correspondance dans le mode RegexIterator::GET_MATCH (=1) #-o
Bon donc le code complet avec RegexIterator et FilesystemIterator:
[php]<?php
$dossier = 'PHOTOS/';
$matche = '#^a#ui';
$f = new FilesystemIterator($dossier, FilesystemIterator::KEY_AS_FILENAME);
$r = new RegexIterator($f, $matche, RegexIterator::MATCH, RegexIterator::USE_KEY);
// équivalent $r = new RegexIterator($f, $matche, 0, 1);
foreach ($r as $t)
{
echo $t->getFilename();
}
?>[/php]