Veröffentlicht 9. Mai 200718 j Servus, eins Vorweg: keine große PHP-Ahnung vorhanden... und jetzt zur Frage: wir haben ne Homepage, die wir hauptsächlich für Fotos vergangener Partys etc. benutzen und wollen wissen, wie viele Fotos immer aktuell online sind. Da mehrere Admins Fotos hochladen, kommt ein zählen so nicht in Frage... Alle Galerien liegen im Ordner "galieren" im Root des Webspaces. Pro Galerie existiert ein Unterverzeichnis, welches die Unterordner "images" und "thumbs" enthält. Hab mir zwei Wege überlegt, wie das theoretisch auswertbar ist. Zum einen alle Dateien mit der Endung .jpg zählen und das ganze durch zwei teilen oder alternativ nur die Dateien in allen "images" Verzeichnissen zählen, was ich vorziehen würde, da somit theoretisch andere Bildformate beachtet werden... nur leider scheitert beides an mangelndem php wissen. Könnte mir jemand auf die Sprünge helfen? Vielen Dank
9. Mai 200718 j du machst ne schleife, die alle galerien-verzeichnisse durchgeht. pro schleifendurchlauf gehst du in das "images" verzeichnis und zählst die dateien da. wie du auf verzeichnisse zugreifst, um sowas zu machen steht zb hier: Das deutschsprachige PHP Handbuch / Manual bei Dynamic Web Pages! PHP PHP3 PHP4 PHP5 - Deutscher Knotenpunkt für PHP -> Dynamic Web Pages. Alles zu MySQL, PostgreSQL, XML, Web Services & PHP
9. Mai 200718 j Mal so ins blaue programmiert... function countImages($path) { # Anzahl gefundener Bilder $result = 0; $dir = opendir($path); while (false !== ($file = readdir($dir))) { if ($file != "." && $file != "..") { # Unterverzeichnis durchsuchen, nicht wenn Unterverz. = thumbs if (is_dir($file) && $file != "thumbs") { # Hier muss wohl noch der absolute Pfad zusammengebaut werden $result+= countImages($file); } # Wenn Datei == Bild Zähler erhöhen if (preg_match(".*\.jpg$", $file)) { $result++; } } } return $result; } $count = countImages("/srv/www"); echo "Wir haben $count Bilder!"; [/php] Nicht getestet, aber als Start sollte das reichen.
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.