Skip to content

Instantly share code, notes, and snippets.

@fhferreira
Last active December 19, 2015 04:59
Show Gist options
  • Select an option

  • Save fhferreira/5901183 to your computer and use it in GitHub Desktop.

Select an option

Save fhferreira/5901183 to your computer and use it in GitHub Desktop.
Recursively Scan a Directory Using PHP SPL DirectoryIterator
<?php
/**
* Get IMAGE files recursively from Root and all sub-folders
* Skip folders in our list of results
* LEAVES_ONLY mode makes sure ONLY FILES/Leafs endpoint is returned
* Make sure file extension is in our Images extensions array
*/
$path = 'E:\Server\_ImageOptimize\img\testfiles';
$directory = new RecursiveDirectoryIterator($path,RecursiveDirectoryIterator::SKIP_DOTS);
$iterator = new RecursiveIteratorIterator($directory,RecursiveIteratorIterator::LEAVES_ONLY);
$extensions = array("png", "jpg", "jpeg", "gif", "gifgif");
foreach ($iterator as $fileinfo) {
if (in_array($fileinfo->getExtension(), $extensions)) {
echo 'File path = ' .$fileinfo->getPathname(). NL;
echo 'File extension = ' .$fileinfo->getExtension(). NL;
$files[] = $fileinfo->getPathname();
}
}
echo '<pre>';
print_r($files);
echo '</pre>';
?>
The Result
Array
(
[0] => E:\Server\_ImageOptimize\img\testfiles\css3-generator.png
[1] => E:\Server\_ImageOptimize\img\testfiles\css3-please.png
[2] => E:\Server\_ImageOptimize\img\testfiles\css3-tools-10.png
[3] => E:\Server\_ImageOptimize\img\testfiles\fb.jpg
[4] => E:\Server\_ImageOptimize\img\testfiles\mysql.gif-or8.png
[5] => E:\Server\_ImageOptimize\img\testfiles\OriginalImages\css3-generator.png
[6] => E:\Server\_ImageOptimize\img\testfiles\OriginalImages\css3-please.png
[7] => E:\Server\_ImageOptimize\img\testfiles\OriginalImages\css3-tools-10.png
[8] => E:\Server\_ImageOptimize\img\testfiles\OriginalImages\fb.jpg
[9] => E:\Server\_ImageOptimize\img\testfiles\OriginalImages\mysql.gif-or8.png
[10] => E:\Server\_ImageOptimize\img\testfiles\OriginalImages\support-browsers.png
[11] => E:\Server\_ImageOptimize\img\testfiles\support-browsers.png
[12] => E:\Server\_ImageOptimize\img\testfiles\testgif.gif
)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment