note 60982 added to ref.dir

From: Date: Sun, 22 Jan 2006 15:34:06 +0000
Subject: note 60982 added to ref.dir
Groups: php.notes 
Request: Send a blank email to php-notes+get-102239@lists.php.net to get a copy of this message
Here is a very similar function to *scandir*, if you are still using PHP4... This recursive function will return an indexed array containing all directories or files or both (depending on parameters). You can specify the depth you want, as explained below. <?php // $path : path to browse // $maxdepth : how deep to browse (-1=unlimited) // $mode : "FULL"|"DIRS"|"FILES" // $d : must not be defined function searchdir ( $path , $maxdepth = -1 , $mode = "FULL" , $d = 0 ) { if ( substr ( $path , strlen ( $path ) - 1 ) != '/' ) { $path .= '/' ; } $dirlist = array () ; if ( $mode != "FILES" ) { $dirlist[] = $path ; } if ( $handle = opendir ( $path ) ) { while ( false !== ( $file = readdir ( $handle ) ) ) { if ( $file != '.' && $file != '..' ) { $file = $path . $file ; if ( ! is_dir ( $file ) ) { if ( $mode != "DIRS" ) { $dirlist[] = $file ; } } elseif ( $d >=0 && ($d < $maxdepth || $maxdepth < 0) ) { $result = searchdir ( $file . '/' , $maxdepth , $mode , $d + 1 ) ; $dirlist = array_merge ( $dirlist , $result ) ; } } } closedir ( $handle ) ; } if ( $d == 0 ) { natcasesort ( $dirlist ) ; } return ( $dirlist ) ; } ?> ---- Server IP: 64.246.30.37 Probable Submitter: 82.229.229.230 ---- Manual Page -- http://www.php.net/manual/en/ref.dir.php Edit -- http://master.php.net/manage/user-notes.php?action=edit+60982 Delete: added to the manual -- http://master.php.net/manage/user-notes.php?action=delete+60982&report=yes&reason=added+to+the+manual Delete: bad code -- http://master.php.net/manage/user-notes.php?action=delete+60982&report=yes&reason=bad+code Delete: spam -- http://master.php.net/manage/user-notes.php?action=delete+60982&report=yes&reason=spam Delete: useless -- http://master.php.net/manage/user-notes.php?action=delete+60982&report=yes&reason=useless Delete: non-english -- http://master.php.net/manage/user-notes.php?action=delete+60982&report=yes&reason=non-english Delete: already in docs -- http://master.php.net/manage/user-notes.php?action=delete+60982&report=yes&reason=already+in+docs Delete: other reasons -- http://master.php.net/manage/user-notes.php?action=delete+60982&report=yes Reject -- http://master.php.net/manage/user-notes.php?action=reject+60982&report=yes Search -- http://master.php.net/manage/user-notes.php

« previous php.notes (#102239) next »