Unterverzeichnisse durchsuchen

ahykes

Erfahrenes Mitglied
Hey Jungs,

jetzt sitze ich schon geraume Zeit an meinem Script und komme nicht weiter. Das Script schaut in ein Verzeichnis und schaut nach, ob eine bestimmt Datei vorhanden ist. Das geht auch wunderbar.
Jetzt soll das Script aber auch in alle Unterverzeichnisse schauen. Der Aufruf müsste also verschachtelt sein. Aber wie ist soetwas umsetzbar?
So sieht es bis jetzt aus:
PHP:
#Konstante: Verzeichnis
$dir2scan = $_SERVER['DOCUMENT_ROOT'].'/durchsuchen';

#Konstante: Zusuchende Datei
$seek_file_name = 'alex.txt';

#Funktion zum Durchsuchen eines Verzeichnisses######################################################
function seek($directorie, $search)
{
	
	$scanned_dir = scandir($directorie);
	$found;
	for($i=0; $i<=count($scanned_dir); $i++)
	{
		if(is_file($directorie.'/'.$scanned_dir[$i]) && $scanned_dir[$i] == $search) 
		{ 
			$found = $directorie.'/'.$scanned_dir[$i];
		}
	}
	return $found;
}

#Suche##############################################################################################
$mark = seek($dir2scan, $seek_file_name);
echo $mark;
 
Cool! Danke, habe auch schon etwas gefunden. Aber jetzt muss ich meinen ganzen Code umbauen. Habe doch PHP5. Habt ihr nicht was mit scandir()? :rolleyes:
 
Okay:

Habe es so gelöst:
PHP:
function read_dir($dir,$seek) {
   $path = opendir($dir);
   while (false !== ($file = readdir($path))) {
   
       if($file!="." && $file!="..") {
	   
           if(is_file($dir."/".$file))
           	{
		   		if ($file == $seek){ $files[]=$dir."/".$file; }
			}
			
           else $dirs[]=$dir."/".$file;            
       }
   }
    if($dirs) {
       foreach($dirs as $dir) {
           read_dir($dir, $seek);
       }
   } 
   
   if($files) {
       foreach ($files as $file) 
           echo $file;
		   echo "<br>";
   }
   closedir($path);
}
######################################################
$path=$_SERVER['DOCUMENT_ROOT'];
$search = 'index.php';
read_dir($path,$seek_file_name;
 
Zurück