Hallo zusammen,
ich hatte bisher in einem Skript einen exec-Befehl, um rekursiv alle Dateien in einem Verzeichnis zu finden.
Parameter z.B.
$basedir= ".test/";
$size=100;
$filter="jpg";
$maxdepth=2;
Das klappt auch prima.Code://// Find Suche //// $command='/opt/bin/find '.$basedir.' -size +'.$size.' -iname "*.'.$filter.'" -maxdepth '.$maxdepth; exec("$command",$results); $count=count($results); print "Anzahl gefundener Dateien $count"; //// END Find Suche ////
Allerdings wollte ich nun das Ganze ohne den exec nur mit PHP-Mitteln machen und habe daher folgenden Code genommen:
Dummerweise ist das Ergebnis der Suche nicht identisch es werden häufig weniger Dateien gefunden als mit der ersten Variante.Code://// PHP Suche //// $it = new RecursiveDirectoryIterator($basedir); foreach(new RecursiveIteratorIterator($it) as $file) { $path_parts = pathinfo($file); preg_match_all("[\/]",$file, $matches); if (filesize($file)/1024 > $size && $path_parts['extension'] == $filter && count($matches[0]) < $maxdepth) { $results[] = $file; } } $count=count($results); print "Anzahl gefundener Dateien $count"; //// END PHP Suche ////
Mir fehlen im Moment die Ideen, woran das liegen könnte.
Sachdienliche Hinweise bitte hier posten. Danke
Lesezeichen