Willkommen in der Webstatt
User-1 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?
User-2 am 10.06.07 18:38

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

User-1 am 10.06.07 18:41

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

wie und wo muss ich das reinschreiben?

User-3 am 10.06.07 18:58

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

User-1 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..?

User-2 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>';
?>

User-1 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?

User-4 am 10.06.07 20:06

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

User-1 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

User-5 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

User-1 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