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: "; ?\>