Hi
ich versuche für ein Zufallsbildscript die Verzeichnistiefe zu begrenzen. Das Script an sich funktioniert einwandfrei. Jedoch werden alle Unterverzeichnisse von §dir durchsucht. Eine Angabe der max_tiefe bringt keine Änderung.
Hat hier vielleicht jemand eine Idee?
PHP
<?php
$dateien = array();
$start=time();
get_dir("VALUE[1]",$start,"VALUE[3]","VALUE[4]",0);
$breite = (int) "VALUE[2]";
#Was gefunden?
if (count($dateien) < 1)
{ echo "nix gefunden"; }
else
{ # Array sortieren
sort($dateien);
# Zufall
srand ((double) microtime() * 10000000);
$rand_keys = array_rand ($dateien, 2);
$Zufallsbild = $dateien[$rand_keys[0]];
$dimensions = GetImageSize($Zufallsbild);
echo "<div id=\"zbild\"><a href=\"$Zufallsbild\" target=\"_blank\">";
if ($dimensions[0] > $breite)
{ $divisor = $dimensions[0] / $breite;
$hoehe = (int) ($dimensions[1] / $divisor);
$thumb = capiImgScale ($Zufallsbild, $breite, $hoehe, false, false);
echo "<img src=\"$thumb\" width=\"$breite\" height=\"$hoehe\""; }
else
{ echo "<img src=\"$Zufallsbild\" width=\"$dimensions[0]\" height=\"$dimensions[1]\""; }
echo " style=\"border-width:1px; border-color:#000000;\" alt=\"Klick mich für eine Großansicht (neues Fenster)\"></a></div>\n";
}
function get_dir ($dir,$startzeit,$zeitlimit,$max_tiefe,$aktuelle_tiefe)
{ global $dateien;
$fp=opendir($dir);
while($datei=readdir($fp))
{ if (is_dir("$dir/$datei") && $datei!="." && $datei!="..")
{ $aktuelle_tiefe++;
if (time()-$starttime > $zeitlimit || $max_tiefe >= $aktuelle_tiefe)
{ get_dir("$dir/$datei",$startzeit,$zeitlimit,$max_tiefe,$aktuelle_tiefe); }
}
else
{ if (strlen($datei) > 4)
{ $ext = strtolower(substr($datei,-4));
if ($ext==".jpg" || $ext==".gif" || $ext=="jpeg" || $ext==".png")
{ $dateien[] = $dir . "/" . $datei; }
}
}
}
closedir($fp);
}
?>
Alles anzeigen
Wäre für jede Hilfe Dankbar!
Schöne Grüße