Hallo,
ich habe folgendes Skript (zuvor umgeschrieben, angegelichen und ergänzt) , aber leider erhalte ich eine Fehlermeldung:
"Warning: Invalid argument supplied for foreach()"
Auf einer anderen Seite fand ich heraus, dass es daran liegt, weil foreach ein array erwartet, z.B. $ordner = array ();
Wenn ich also in der Zeile
#$ordner = array ();
das "#" entferne, kommt zwar keine Fehlermeldung mehr, jedoch erhalte ich eine falsche Anzahl an Ordnern und Dateien. Wie kann ich das korrigieren?
Wie muss die Zeile (string-Befehl) aussehen, damit in einem bestimmten Verzeichnis nur die *.jpg-Dateien (und auch die Ordner) gezählt werden?
Wer kann mir helfen?
Würde mich über Antworten sehr freuen. Danke!
PHP-Code:
<?php
function count_all_files_and_dirs_recursive($dir,$endung)
{
$count = array('datei'=>0,'ordner'=>0) ;
$ordner = glob($dir.'/*',GLOB_ONLYDIR);
$count['datei'] += count(glob($dir.''.$endung));
$count['ordner'] += count($ordner);
#$ordner = array ();
foreach($ordner as $dir)
{
$next = call_user_func(__FUNCTION__,$dir,$endung);
$count['datei'] += $next['datei'];
$count['ordner'] += $next['ordner'];
}
return $count;
}
$count = count_all_files_and_dirs_recursive('./web-alben/','.jpg');
echo "Es befinden sich {$count['datei']} Bild(er) und "
. "{$count['ordner']} Unterverzeichnis(se) im Ordner: ";
?>