User Contributed Notes Acc�s aux dossiers |
|
[email protected]
13-Dec-2000 07:06 |
|
List all files in a directory tree under Win32:
function
list_dir($dirname)
{
if($dirname[strlen($dirname)-1]!='\\')
$dirname.='\\';
static
$result_array=array();
$handle=opendir($dirname);
while ($file
=
readdir($handle))
{
if($file=='.'||$file=='..')
continue;
if(is_dir($dirname.$file))
list_dir($dirname.$file.'\\');
else
$result_array[]=$dirname.$file;
}
closedir($handle);
return
$result_array;
}
|
|
avbentem at hetnet.nl
24-Feb-2002 10:06 |
|
The user annotation above it not correct: one should really use 'identical'
to check for FALSE, as a directory may be named FALSE as
well...
Thus:
while ($file =
readdir($handle))
should read
while (false !== ($file =
readdir($handle)))
See
Arjan.
|
|
ben AT tech-space DOT net
23-May-2002 05:10 |
|
//lists all files in a directory with a given file name
convention
function list_dir($file_name_convention) { switch
($file_name_convention) { case 'dated_reports': //matches
files like '5_23_2002.html' $this_regexp =
"/[0-9]{1,}_[0-9]{1,}_[0-9]{4,}/"; break;
//add more cases of file name conventions } $this_dir =
dir('.'); if ($this_regexp != null) { while ($file =
$this_dir->read()) { if (preg_match($this_regexp, $file))
{ $result_array[] = $file; } } }
return $result_array; }
|
|
[email protected]
23-May-2002 06:20 |
|
Just a side note....not really php'ish
$mstrng = shell_exec('du -sc
/usr/local/apache/www'); print "$mstrng";
Will get you
the size of a directory, including all of its sub dirs and files within.
|
|
tapani
07-Aug-2002 12:54 |
|
shell_exec this
ls -la '$dir'|wc -l|sed 's/^ *//;'
to get
number of files in dir
|
|
david DOT leggett AT ntlworld DOT com
15-Aug-2002 03:27 |
|
array filelist (string directory)
This function will recurse all
dirs below the specified directory and return with a list of all the
files, e.g. $listoffiles = filelist ("/download"); where
/download has the following
structure: /download/file.html /download/somefolder/anotherfile.tar /download/somefolder/someotherfolder/afileagain.php will
return
$listoffiles = array ( [0] =>
"file.html", [1] => "anotherfile.tar", [2]
=> "afileagain.php" )
I hope you will find this
useful. David Leggett
// File listing function function
filelist ($currentdir, $startdir=NULL, $files=array()) { chdir
($currentdir);
// remember where we started from if
(!$startdir) { $startdir = $currentdir; } $d = opendir
("."); //list the files in the dir while ($file =
readdir ($d)) { if ($file != ".." && $file !=
".") { if (is_dir ($file)) { // If $file is a
directory take a look inside $files = filelist (getcwd().'/'.$file,
getcwd(), $files); } else { // If $ file is not a directory
then add it to our output array $files[] =
$file; } } }
closedir ($d); chdir
($startdir); return $files; }
|
|
erere CHIOCCIOLINA iname PUNTO com
17-Aug-2002 12:40 |
|
In [email protected]'s function
list_dir($dirname):
if(is_dir($dirname.$file))
list_dir($dirname.$file.'\\');
should
become:
if(is_dir($dirname.$file))
$result_array[]=list_dir($dirname.$file.'\\');
or recursion
will be done, but no subdirs will be pushed into the
$result_array.
Ernesto
|
|
admin[@T]networkessence.net
21-Aug-2002 11:41 |
|
This script will count lines of code that do not begin with // or are not
blank space. It's very approximate because it will include /* */ comments
and will also include lines that start with blank space and then //. It's
a start though (it's recursive, so don't use this with a directory
structure that includes symbolic links). This will recursively count all
the lines of files that end with .php. You can change .php to whatever,
and also change the guidelines as to whether a line qualifies as a comment
or not (look around the !="//"
part)
$i=0;
function getDirList ($dirName) {
global $i; $d = dir($dirName); while($entry
= $d->read()) { if ($entry != "."
&& $entry != "..") {
if (is_dir($dirName."/".$entry)) {
getDirList($dirName."/".$entry);
} else if(substr($entry, -4)=='.php') {
if($read_file = file($dirName.'/'.$entry))
foreach($read_file as
$line)
if(($line!="\n") && (substr($line, 0,
2)!="//"))
$i++; echo
$dirName."/".$entry."\n";
} } }
$d->close();
}
getDirList("./path/to/files");
echo $i;
|
|
[email protected]
30-Aug-2002 01:10 |
|
Note that all directory functions will not work if PHP is running in
"safe mode" and the uid of the script is not the uid of the dir
owner.
|
|
[email protected]
30-Aug-2002 01:36 |
|
Small script to list all files + size + date (like the DOS dir
command)
//define the path as relative $path =
".";
//using the opendir function $dir_handle =
@opendir($path) or die("Unable to open $path");
//make string with 70 spaces $space="
"; echo
"<PRE>"; echo "Directory Listing of
$path\n"; //running the while loop while ($file =
readdir($dir_handle)) { // filename - output
left-justified $t="<a
href=$file>$file</a>"; echo
$t.substr($space,0,40-strlen($file)) ; //
filesize - output right-justified
$t=(filesize($file)/1024);
$t=sprintf("%01.2f",$t)."kb "; echo
substr($space,0,10-strlen($t)) . $t ; // filedate
- output left-justified $t=date("d.M Y H:i:s",
filemtime($file)); echo $t.substr($space,0,20-strlen($file))
; echo "\n"; } //closing the
directory closedir($dir_handle); echo
"</PRE>";
|
|
|