Skip to content

Instantly share code, notes, and snippets.

@brucekirkpatrick
Last active December 2, 2017 04:54
Show Gist options
  • Save brucekirkpatrick/8528710 to your computer and use it in GitHub Desktop.
Save brucekirkpatrick/8528710 to your computer and use it in GitHub Desktop.
Function to return only the files in a directory, and optionally do this recursively.
<?php
function recurseDirectory(&$arrItems, $directory, $recursive) {
if ($handle = opendir($directory)) {
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != "..") {
if(is_dir($directory.$file)) {
if($recursive){
recurseDirectory($arrItems, $directory.$file."/", $recursive);
}
}else{
$arrItems[] = $directory . $file;
}
}
}
closedir($handle);
}
return $arrItems;
}
function getFilesInDirectoryAsArray($directory, $recursive) {
$arrItems = array();
if(substr($directory, strlen($directory)-1, 1) != "/"){
$directory.="/";
}
recurseDirectory($arrItems, $directory, $recursive);
return $arrItems;
}
?>
@brucekirkpatrick
Copy link
Author

Use like this: var_dump(getFilesInDirectoryAsArray("/path/",true));

@brucekirkpatrick
Copy link
Author

Added support to filter the files by one or more file extensions. Usage: var_dump(getFilesInDirectoryAsArray("/path/",true, array("js", "css")));

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment