<?php
$startdir = "/opt/lampp/htdocs";
$dir = $startdir;
$last_file = "..";
$recursive_limit = 400;
$f_arr = array();
$d_arr = array() ;
#$dir = "E:/server/www/Joomla/xcloner/images";
while($i++ < 100){
$count = 0;
$k = 0;
$return = "";
$last = recursive($dir, $last_file);
echo "\n<b>Lastdir:</b> $last\n" ;
if(dirname($last) == dirname($startdir)){
$f_arr = array_unique($f_arr);
$d_arr = array_unique($d_arr);
sort($f_arr);
sort($d_arr);
echo "<b>Recurse finished! Files: ".sizeof($f_arr)." ; Directories: ".sizeof($d_arr)."</b>";
#print_r($f_arr);
break;
}
#echo $last_return;
if((!is_dir($last))||($last_return == 1))
{
$dir = dirname($last);
$last_file = basename ($last);
}
else{
$dir = $last;
$last_file = '..';
}
}
function recursive( $dir , $last_file = '..')
{ global $count, $return, $k, $startdir, $last_return, $recursive_limit, $f_arr, $d_arr;
#echo "\n<b>Opening $dir with last file $last_file</b>\n";
$last_return = 0;
if (is_dir($dir)) {
if ($dh = opendir($dir)) {
while (($file = readdir($dh)) !== false ) {
#echo $file."--".$last_file."\n";
if (($file != $last_file)&&($k == 0))
continue;
elseif(($file == $last_file)&&($file != '..')){
$k = 1;
continue;
}else{
$k =1 ;
}
#echo "<b>".$file."</b>";
if( $file != "." && $file != ".." )
{
$cfile = "$dir/$file";
if($count == $recursive_limit){
if($return == "")
$return = $cfile;
$last_return = 2;
if(is_dir($cfile))
$d_arr[] = $cfile;
else
$f_arr[] = $cfile;
//echo "return here with $cfile";
return $return ;
}
++$count;
if( is_dir( $dir ."/". $file ) )
{
//echo "<b>Entering Directory: $cfile</b>\n";
$d_arr[] = $cfile;
recursive( $cfile );
}
else
{
//echo "file: $cfile\n";
$f_arr[] = $cfile;
}
}
}
closedir($dh);
}
}
$last_return = 1;
return $dir;
}
?>