Willkommen in der Webstatt Zum Webstatt Blog und Stories
BundeHund am 10.06.07 18:33

hallo ich habe folgendes codesnipsel

$verzeichnis = "./images/random/";
$bildtyp = array("gif","jpg","png","bmp");
$quelle = dir($verzeichnis);
$bildname = array();
while($datei = $quelle->read()){$format = substr(strrchr($datei,".") ,1);
if (in_array($format,$bildtyp)){$bildname[] = $datei;}}
$quelle->close();
srand((double) microtime()*10000000);
$typ = array_rand($bildname);
echo "<div align='center'><img src='$verzeichnis/$bildname[$typ]' alt='' /></div>";


Mein Problem ist nun, da ich in dem Ordner verschiedene Bilder habe:

zB. :

Bild1

01.jpg
normal_01.jpg
thumb_01.jpg

Bild2

02.jpg
normal_02.jpg
thumb_02.jpg

wie kann ich es machen, damit nur alle "normal_##" Bilder ausgelesen werden.
Aber nicht, dass ich immer alle Bilder alleine reinschreibe..sondern es soll automatisch gehen, da es stets neue geben wird..

netcup.de Warum gibt es hier Werbung?
sili sili am 10.06.07 18:38

Das geht mit glob(). Sowas wie glob('normal_([0-9]{2}).*') sollte funktionieren ;)

BundeHund am 10.06.07 18:41

danke..aber kannst du mir die variabeln da erklären?

wie und wo muss ich das reinschreiben?

Johannes am 10.06.07 18:58

Das sollte helfen:
http://www.php.net/manual/de/function.glob.php

BundeHund am 10.06.07 19:12

danke aber ich komme nicht so draus..hab was versucht aber es klappt nicht..
$verzeichnis = "images/random";

$bildtyp = array("gif","jpg","png","bmp");
$quelle = dir($verzeichnis);
$bildname = array();
while($datei = $quelle->read()){$format = substr(strrchr($datei,".") ,1);
if (in_array($format,$bildtyp)){$bildname[] = $datei;}}
$quelle->close();
srand((double) microtime()*10000000);
$typ = array_rand($bildname);
foreach (glob('normal_([0-10]{2}).*') {

echo "<div align='center'><img src='$verzeichnis/$bildname[$typ]' alt='' /></div>";}


kann mir jemand den code machen..?

sili sili am 10.06.07 19:46

So sollte es eigentlich funktionieren. Dein Code kannst du damit komplett ersetzen.

<?php
$a_img = glob('./images/random/normal_([0-9]{2}).(gif|jpg|png|bmp)');
$bild = array_rand($a_img);
echo '<div align="center"><img src="' . $bild . '" alt='' /></div>';
?>

BundeHund am 10.06.07 19:57

danke

aber es geht irgendwie nicht..ich hab den fehler nicht gefunden.


Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting ',' or ';' in /home/www/web619/html/datei.php on line 4


?? was ist da falsch?

Snake am 10.06.07 20:06

echo '<div align="center"><img src="' . $bild . '" alt="" /></div>';

BundeHund am 10.06.07 20:17

danke...

aber das script klappt irgendwie nicht..es wird kein bild angezeigt..nur ein rotes x


http://www.b-different.org/baden.php

nuit nuit am 11.06.07 16:22

<?php
$path = './images/random/';
$a_img = glob($path.'normal_([0-9]{2}).(gif|jpg|png|bmp)');
$bild = array_rand($a_img);
echo '<div align="center"><img src="'. $path .$bild . '" alt="" /></div>';
?>

ich tipp mal so, dass der pfad nicht stimmt

BundeHund am 11.06.07 20:44

hey sry..aber es geht einfach nicht..keine ahnung was ich falsch mache ...aber es klappt nicht..

das bild wird als "pfad vom ordner" verlinkt..also nach images/ kommt nichts mehr..

?

Creative Commons Lizenzvertrag
Alle Inhalte des Webstatt-Archivs stehen unter einer Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 3.0 Unported Lizenz.

Impressum & Kontakt