foreach-Abfrage mit Unterverzeichnis für Bilder

elch2

Grünschnabel
Hallo,

wie müßte ich die Variable $pfad für Bilder aus dem Ordner "pics/" in meine Glob-Abfrage einbauen?

..pics/
haus11.jpg
haus12.jpg
haus13.jpg
haus21.jpg
haus22.jpg

PHP:
<?
error_reporting(E_ALL);
$pfad = 'pics/';
// suche nur nach Häuser 10-19

foreach (glob("haus1*.jpg") as $filename) {

    echo "$filename ";
}

foreachelse { 
   echo 'Keine Bilder gefunden.'; 
} 

?>

2. wenn nichts gefunden, soll erscheinen "Keine Bilder gefunden" es kommt jedoch nur folgende Fehlermeldung
Parse error: syntax error, unexpected '{' in Zeile "foreachelse"
Was mache ich hier falsch?
 
PHP:
<? 
error_reporting(E_ALL); 
$pfad = 'pics/'; 
// suche nur nach Häuser 10-19 

$msg = 'Keine Bilder gefunden.';

foreach (glob($pfad . "haus1*.jpg") as $filename) { 

    echo "$filename ";
    $msg = '';
} 

echo $msg;
 
vielen Dank, klappt schon ganz gut, nur steht jetzt die $pfad -Bezeichnung mit in der Liste

pics/haus11.jpg
pics/haus12.jpg
pics/haus13.jpg
pics/haus21.jpg
pics/haus22.jpg


Wurden keine Daten gefunden, wird gemeldet:
Warning: Invalid argument supplied for foreach() in /var/www/....on line 11
Keine Bilder gefunden.
 
Was soll denn ausgegeben werden? Eigentlich bin ich kein Fan davon hier CopyPasteLösungen zu bieten - kribbelt es dich nicht, das selber zu lösen :p

Also um nur den hintersten Teil vom Pfad zu bekommen kannst du das benutzen:
echo basename($filename);

Wie Warnung (Warning) kann ich so nicht verstehen, die Doku sagt klar:
"Gibt ein Array mit den übereinstimmenden Datei- und Verzeichnisnamen zurück. Wenn keine Treffer gefunden wurden, wird ein leeres Array zurückgegeben und im Fehlerfall FALSE." -> Sollte also ein leeres Array sein, was keine Warnung produzieren kann.
 
Habe es gelöst, wenn auch etwas unkonventiunell, mit substr(); indem ich den vorgestellten Pfadname vor dem Ausdruck wieder lösche. Viele Wege führen nach ....
 
Zurück