OffTopic: 
bitte öffne mal das fenster, da steht einer, der schreit abwechselnd rekursion und is_dir(), ich kanns bis hier hören!
Last Update
				
					Einklappen
				
			
		
	X
- 
	
	
	
		
	
	
		
		
		
		
		
		
		
	
	
 also ich hab in DIESEM thread genau das gefunden was ich suche, das ganze rekursiv. Also ich habe es hiermit versucht:
 
 nur er "steigt" nicht die unterverzeichnisse herrab, sondern zeigt mir nur die verzeichnissnamen an, und nicht den INhalt. Praktisch genauso wie das script, was ich oben selber gemacht habe.PHP-Code:<?php
 
 GetDirArray(".");
 
 
 
 // Ausgabe von $dir
 
 for($i=0;$i<count($dir);$i++) {
 
 echo "$dir[$i]<br>";
 
 }
 
 
 
 
 
 function GetDirArray($sPath)
 
 {
 
 global $dir; // ARRAY $DIR MUSS GLOBAL SEIN
 
 //Load Directory Into Array
 
 $handle=opendir($sPath);
 
 while ($file = readdir($handle))
 
 {
 
 $retVal[count($retVal)] = $file;
 
 }
 
 //Clean up and sort
 
 closedir($handle);
 
 sort($retVal);
 
 //return $retVal;
 
 
 
 while (list($key, $val) = each($retVal))
 
 {
 
 if ($val != "." && $val != "..")
 
 {
 
 $path = str_replace("//","/",$sPath.$val);
 
 $dir[] = $path; // SPEICHERUNG IM ARRAY $DIR
 
 if (is_dir($sPath.$val))
 
 {
 
 GetDirArray($sPath.$val."/");
 
 }
 
 }
 
 }
 
 }
 
 ?>
 Kommentar
- 
	
	
	
		
	
	
		
		
		
		
		
		
		
	
	
 ok, vergesst das von voher. Ich hab mir nun diese Rekursion selber geschriben:
 
 Das funzt alles super, nur er gibt immer bei filemtime() nen Fehler. Ist ja auch ganz logisch, wenn er schon ein verzeichniss runtergegangen ist, findet er diese Datei ja nicht im aktuellen ordner. (also der Fehöler ist "no such file or directory) Also: Ich müsste bei filemtime irgendwo noch einen parameter angeben können. Nicht nur den dateinamen, sondern auch den ordner, in dem die Datei liegt. Geht das?PHP-Code:<?PHP
 
 function get($verzeichniss)
 {
 
 $verz=opendir ($verzeichniss);
 
 while ($file = readdir ($verz)) {
 
 if (($file == ".") OR ($file == ".."))
 
 {
 
 }
 
 else
 
 {
 if (is_dir($file) == true)
 {
 get($file);
 }
 else
 {
 echo(filemtime($file));
 
 echo($file);
 
 echo("<br><br>");
 }
 }
 
 }
 
 closedir($verz);
 }
 get(".");
 ?>
 Also bei den Dateien, die im selben ordner wie das scriipt liegen gehts. Bei den anderen gibt es oben genannten fehler
 Kommentar
- 
	
	
	
		
	
	
		
		
		
		
		
		
		
	
	
 Hmm, ich hab das ganze noch ein bischen modifiziert:
 Nur jetzt hab ich folgendes Problem:Bei der ersten rekursionsebene läuft alles einwandfrei, in der 2. Ebene gibt er dann die Ordnernamen mit aus, was er ja eigentlich nach adam riese nicht dürfte, weil das ja in der If-bedinung ausgeschlossen wird. Folglich tritt die if bedinung nicht ein, und er ruft sich nicht wieder auf, d.h. ich komme nur 2 ebenen tief. Woran kann das liegen? Muss wohl irgendwas mit dem aufruf zu tun haben, mit den ordnern.. Aber: Keine ahnung was! Helft mir!PHP-Code:<?PHP
 
 function get($verzeichniss)
 {
 
 $verz=opendir ($verzeichniss);
 
 while ($file = readdir ($verz)) {
 
 if (($file == ".") OR ($file == ".."))
 
 {
 
 }
 
 else
 
 {
 if (is_dir($file) == true)
 {
 $newverz=$verzeichniss."/".$file;
 get($newverz);
 }
 else
 {
 $newfile=$verzeichniss."/".$file;
 echo(filemtime($newfile));
 echo($verzeichniss);
 
 echo($file);
 
 echo("<br><br>");
 }
 }
 
 }
 
 closedir($verz);
 }
 get(".");
 ?>
 Kommentar
- 
	
	
	
		
	
	
		
		
		
		
		
		
		
	
	
 juhuu, ich habs geschafft. Ich darf nur nicht mit $file vergleichen, sondern mit $newverz. Dann klappts. Jetzt noch ne Frage zu den Timestamps: Kann ich einfach diese UNIX Timestamps überprüfen, und den höchsten dann in ein richtiges datum umwandeln? Oder wie kann man diese Timestamps vergleichen? Also wenn ich z.b. sage 234234432>324234234 ist dann 324234234 auch wirklic die aktuellste, oder setzt sich der Timestamp anders zusammen?
 Kommentar
- 
	
	
	
		
	
	
		
		
		
		
		
		
		
	
	
 OK, also kann ich sie vergleichen. HAb das jetzt so gemacht:
 
 nur warum bekomme ich dann für $high 0?? Er gibt garnicht das aus, was in der Funktion erändert wurde!PHP-Code:<?PHP
 $high=0;
 function get($verzeichniss)
 {
 
 $verz=opendir ($verzeichniss);
 
 while ($file = readdir ($verz)) {
 
 if (($file == ".") OR ($file == ".."))
 
 {
 
 }
 
 else
 
 {
 $newverz=$verzeichniss."/".$file;
 if (is_dir($newverz) == true)
 {
 
 get($newverz);
 }
 else
 {
 if (filemtime($newverz) > $high)
 {
 $high=filemtime($newverz);
 }
 }
 }
 
 }
 
 closedir($verz);
 }
 get(".");
 echo($high);
 ?>
 Kommentar
 
          
 Moderator
 Moderator Ihr postet einfach zu schnell ohne nachzudenken. wir sollten es euch nicht so einfach machen.
 Ihr postet einfach zu schnell ohne nachzudenken. wir sollten es euch nicht so einfach machen.
 
							
						
Kommentar