Skip to content

Instantly share code, notes, and snippets.

@brucekirkpatrick
Last active December 2, 2017 04:54

Revisions

  1. brucekirkpatrick revised this gist Jan 20, 2014. 1 changed file with 41 additions and 5 deletions.
    46 changes: 41 additions & 5 deletions getFilesInDirectoryAsArray.php
    Original file line number Diff line number Diff line change
    @@ -1,4 +1,21 @@
    <?php
    function getFilesInDirectoryAsArray($directory, $recursive, $arrFilter=array()) {
    $arrItems = array();
    if(substr($directory, strlen($directory)-1, 1) != "/"){
    $directory.="/";
    }
    if(count($arrFilter)){
    $filterMap=array();
    for($i=0;$i<count($arrFilter);$i++){
    $filterMap[$arrFilter[$i]]=true;
    }
    var_dump($filterMap);
    recurseDirectoryWithFilter($arrItems, $directory, $recursive, $filterMap);
    }else{
    recurseDirectory($arrItems, $directory, $recursive);
    }
    return $arrItems;
    }
    function recurseDirectory(&$arrItems, $directory, $recursive) {
    if ($handle = opendir($directory)) {
    while (false !== ($file = readdir($handle))) {
    @@ -16,12 +33,31 @@ function recurseDirectory(&$arrItems, $directory, $recursive) {
    }
    return $arrItems;
    }
    function getFilesInDirectoryAsArray($directory, $recursive) {
    $arrItems = array();
    if(substr($directory, strlen($directory)-1, 1) != "/"){
    $directory.="/";
    function recurseDirectoryWithFilter(&$arrItems, $directory, $recursive, &$filterMap) {
    if ($handle = opendir($directory)) {
    while (false !== ($file = readdir($handle))) {
    if ($file != "." && $file != "..") {
    if(is_dir($directory.$file)) {
    if($recursive){
    recurseDirectoryWithFilter($arrItems, $directory.$file."/", $recursive, $filterMap);
    }
    }else{
    if(isset($filterMap[getFileExt($file)])){
    $arrItems[] = $directory . $file;
    }
    }
    }
    }
    closedir($handle);
    }
    recurseDirectory($arrItems, $directory, $recursive);
    return $arrItems;
    }
    function getFileExt($path){
    $pos=strrpos($path, ".");
    if($pos===FALSE){
    return "";
    }else{
    return substr($path, $pos+1);
    }
    }
    ?>
  2. brucekirkpatrick revised this gist Jan 20, 2014. 1 changed file with 8 additions and 8 deletions.
    16 changes: 8 additions & 8 deletions getFilesInDirectoryAsArray.php
    Original file line number Diff line number Diff line change
    @@ -1,19 +1,19 @@
    <?php
    function recurseDirectory(&$arrItems, $directory, $recursive) {
    if ($handle = opendir($directory)) {
    while (false !== ($file = readdir($handle))) {
    if ($file != "." && $file != "..") {
    if(is_dir($directory.$file)) {
    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);
    }
    }
    }
    closedir($handle);
    }
    return $arrItems;
    }
    function getFilesInDirectoryAsArray($directory, $recursive) {
  3. brucekirkpatrick created this gist Jan 20, 2014.
    27 changes: 27 additions & 0 deletions getFilesInDirectoryAsArray.php
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,27 @@
    <?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;
    }
    ?>