Hallo,
ich würde gerne jpg-Dateien nicht nur in einem Verzeichnis (z.B. "webalben") auslesen/zählen, sondern auch alle jpg-Dateien (und evtl. Ordner) in den Unterverzeichnissen von "webalben" zählen.
Um die Dateien in einem Verzeichnis zu zählen, habe ich folgendes Skript (welches auch funktioniert):
PHP-Code:
Hab in Foren (404 Not Found...) gelesen, dass es mit rekursiver Programmierung funktioniert. Hab das skript von oben übernommen (teils geändert) und die Funktion "get_dir" hinzugefügt.
Hier der PHP Code
(index_count_all_files.php):
PHP-Code:
Der Code-Einbau in index_xyz.php sieht so aus:
PHP-Code:
Ich erhalte folgende Fehlermeldung auf der HP:
Parse error: syntax error, unexpected T_ELSE in /usr/export/www/vhosts/funnetwork/hosting/floli1privat/scripts/php/index_count_all_files.php on line 10
Ich bin mir sicher, dass ich den Befehl
get_dir("$dir/$datei");
nicht an richtiger Stelle eingefügt habe. MÖglicherweise fehlt auch noch etwas!
Ich bin alles andere als ein Profi bei PHP oder was andere Progrommiersprachen betrifft. Ich bitte dies bei Euren Antworten zu berücksichtigen.
Hier komm ich leider nicht weiter.
Wer kann mir helfen?
Vielen Dank im Voraus.
Viele Grüße,
Flo
(ccolucci)
ich würde gerne jpg-Dateien nicht nur in einem Verzeichnis (z.B. "webalben") auslesen/zählen, sondern auch alle jpg-Dateien (und evtl. Ordner) in den Unterverzeichnissen von "webalben" zählen.
Um die Dateien in einem Verzeichnis zu zählen, habe ich folgendes Skript (welches auch funktioniert):
PHP-Code:
<?php
function count_in_dir($where)
{
$cnt = Array('files' => 0,'ordner' => 0);
if($dh = opendir($where)) {
while(($file = readdir($dh)) !== false) {
if(preg_match('/^\.+$/', $file)) ; # . / ..
elseif(is_dir("$where/$file")) $cnt['ordner']++; # directory
else $cnt['files']++; # file
}
closedir($dh);
}
return $cnt;
}
?>
function count_in_dir($where)
{
$cnt = Array('files' => 0,'ordner' => 0);
if($dh = opendir($where)) {
while(($file = readdir($dh)) !== false) {
if(preg_match('/^\.+$/', $file)) ; # . / ..
elseif(is_dir("$where/$file")) $cnt['ordner']++; # directory
else $cnt['files']++; # file
}
closedir($dh);
}
return $cnt;
}
?>
Hab in Foren (404 Not Found...) gelesen, dass es mit rekursiver Programmierung funktioniert. Hab das skript von oben übernommen (teils geändert) und die Funktion "get_dir" hinzugefügt.
Hier der PHP Code
(index_count_all_files.php):
PHP-Code:
<?php
function get_dir($dir)
{
$cnt = Array('files' => 0,'ordner' => 0);
if($fp = opendir($dir)) {
while(($datei = readdir($fp)) !== false) {
if(preg_match('/^\.+$/', $file)) ; # . / ..
elseif (is_dir("$dir/$datei")) $cnt['ordner']++; # directory
else $cnt['files']++; # file
{ get_dir("$dir/$datei"); }
}
closedir($fp);
}
return $cnt;
}
?>
function get_dir($dir)
{
$cnt = Array('files' => 0,'ordner' => 0);
if($fp = opendir($dir)) {
while(($datei = readdir($fp)) !== false) {
if(preg_match('/^\.+$/', $file)) ; # . / ..
elseif (is_dir("$dir/$datei")) $cnt['ordner']++; # directory
else $cnt['files']++; # file
{ get_dir("$dir/$datei"); }
}
closedir($fp);
}
return $cnt;
}
?>
Der Code-Einbau in index_xyz.php sieht so aus:
PHP-Code:
<?php
include 'scripts/php/index_count_all_files.php';
$ordner = 'web-alben';
$anzahl = get_dir($ordner);
echo " {$anzahl['files']} Bilder und "
. "{$anzahl['ordner']} Unterverzeichnisse im Ordner: $ordner";
?>
include 'scripts/php/index_count_all_files.php';
$ordner = 'web-alben';
$anzahl = get_dir($ordner);
echo " {$anzahl['files']} Bilder und "
. "{$anzahl['ordner']} Unterverzeichnisse im Ordner: $ordner";
?>
Ich erhalte folgende Fehlermeldung auf der HP:
Parse error: syntax error, unexpected T_ELSE in /usr/export/www/vhosts/funnetwork/hosting/floli1privat/scripts/php/index_count_all_files.php on line 10
Ich bin mir sicher, dass ich den Befehl
get_dir("$dir/$datei");
nicht an richtiger Stelle eingefügt habe. MÖglicherweise fehlt auch noch etwas!
Ich bin alles andere als ein Profi bei PHP oder was andere Progrommiersprachen betrifft. Ich bitte dies bei Euren Antworten zu berücksichtigen.
Hier komm ich leider nicht weiter.

Wer kann mir helfen?
Vielen Dank im Voraus.
Viele Grüße,
Flo
(ccolucci)

Kommentar