mardi 17 mars 2009
Dans les beaux jours de PHP 4, si on voulait parcourir et lister le contenu d'un répertoire, on devait s'y prendre comme ceci :
$directory = '/path/to/files';On peut encore utiliser cette bonne vieille méthode, mais PHP 5 a introduit dans son SPL la classe DirectoryIterator qui est beaucoup plus facile à comprendre. Voici le même bout de code traduit à la façon PHP 5.
if ($handle = opendir( $directory )) {
while ($file = readdir($handle)) {
if ($file != '.' && $file != '..') {
echo $file;
}
}
closedir($handle);
}
$iter = new DirectoryIterator( $directory );L'objet $file possède plusieurs méthodes pour nous simplifier la vie, comme par exemple getPath, getPathName, getSize, isDir, isFile, isDot, isExecutable, isReadable et isWritable.
foreach($iter as $file ) {
if ( !$file->isDot() ) {
echo $file->getFilename();
}
}
En revanche, si le répertoire contient d'autres dossiers à parcourir, il suffit d'utiliser la classe RecursiveDirectoryIterator.
$iter = new RecursiveDirectoryIterator( $directory );Dans les deux derniers cas, on peut parcourir la liste à l'aide d'un foreach puisque les deux classes implémentent l'interface Iterator, un pattern populaire.
foreach (new RecursiveIteratorIterator($iter) as $file) {
echo $file->getPath() . ' [' . $file->getFilename() . ']';
}
Bonjour,
pour sa présentation finale et ses possibilité de personnalisation, jusqu'à présent j'utilisais ceci :
http://cyberzoide.developpez.com/php4/file/
je viens de passé au dernier php et ça merdoie un peu.
je n'entrave rien à l'objet.
je suis certain que nous serons nombreux à féliciter et remercier celui qui voudrait bien reprendre le tuto ci dessus et le mettre à jour ?