Dateinamen auslesen

Servus zusammen.

Habe einen Ordner mit Smilies und darin eine PHP mit folgenden Zeilen.
Wenn ich diese aufrufe, spukt sie mir alle Bilder aus, die im Ordner enthalten sind.

<?php $verz = opendir('.'); $liste = array(); while (false !== ($file = readdir($verz))) $liste[] = $file; closedir($verz); sort($liste); foreach ($liste as $file) if (preg_match('/\.(gif|png|jpe?g)$/i', $file)) echo "<img src=$file> &nbsp; "; ?>

Würde nun gerne aber unter jedes Bild den Dateinamen anzeigen lassen.
Aber nicht den kompletten Pfad abc.xy/blabla.jpg,
sondern NUR blabla.jpg.

Perfekt wäre natürlich noch, wenn das ganze in einer Tabelle ausgegeben würde.
Also das Bild und darunter der Bildname in einem Rahmen(Zelle).

Hat vielleicht jemand einen Tip ?

Wäre sehr dankbar dafür !!!

[quote=“HATE”]Aber nicht den kompletten Pfad abc.xy/blabla.jpg,
sondern NUR blabla.jpg.[/quote]
Versteh ich nicht, genau das gibt dir ja readdir() zurück.

<?php
$verz = opendir('.');
$liste = array();
while (false !== ($file = readdir($verz)))
    $liste[] = $file;
closedir($verz);
sort($liste);

foreach ($liste as $file)
    if (preg_match('/\.(gif|png|jpe?g)$/i', $file))
        echo "<div><img src=$file /><p>$file</p></div>";
?>

sollte Funktionieren…

Danke euch zwei !!!

Das hilft mir weiter.
Hier mal ein Screen wie es perfekt wäre.

Es sollte eine Tabelle erstellt werden, und jeden Zelle mit einem Bild
und dazugehörigem Dateinamen gefüllt werden.

Ist das zu machen ?

//EDIT

So, hab es zumindest soweit, das er mir eine Tabelle ausgibt.
Nur leider alles in eine Zeile, d.h. ich muß 5kM nach rechts scrollen.

[code]<?php
$verz = opendir(’.’);
$liste = array();
while (false !== ($file = readdir($verz)))
$liste[] = $file;
closedir($verz);
sort($liste);

echo „“;

foreach ($liste as $file)
if (preg_match(’/.(gif|png|jpe?g)$/i’, $file))

echo „

“;
echo „

/$file
“;

?>[/code]

Wie kann ich sagen, nach 10 Spalten bitte eine neue Zeile anfangen ?

besser du nimmst “div” mit einer festgelegten höhe/breite, dann passt sich das automatisch an den Bildschirm an (Tabellen sind für sowas nicht geeignet, bzw. ausgelegt)

da hat er schon recht…

aber ansonsten kann man sowas mit ner $i und ner if abfrage machen…
wenn du verstehst was ich meine :wink:

mfg Joey

[quote=“bcg”]da hat er schon recht…

aber ansonsten kann man sowas mit ner $i und ner if abfrage machen…
wenn du verstehst was ich meine :wink:

mfg Joey[/quote]

hmmm…werd ein wenig rumprobieren.
Aber würde mich natürlich über den einen oder anderen Schnipsel freuen :smiley:

Ich bekomme es einfach nicht hin :motz:
Bin wohl zu doof.

Mach ich es mit einer Tabelle, haut mir das Script alles hintereinander.
Dann muß man 5 kM nach rechts scrollen.

Mach ich es mit einem Div mit fester Breite, dann haut er mir alles untereinander.
Und man muß 5 kM nach unter scrollen.

:qst2: :qst2: :qst2:

Jemand noch eine Idee ? Oder Vielleicht sogar einen Schnipsel rumliegen ?

moin,

hab da mal was rumprobiert, geht aber bestimmt noch was eleganter ^^

[code]<?php
$verz = opendir(’.’);
$liste = array();
while (false !== ($file = readdir($verz))) {
if (preg_match(’/.(gif|png|jpe?g)$/i’, $file)) {
$liste[] = $file;
}
}
closedir($verz);
sort($liste);
$count = count($liste) / 2;

echo “

\n”;
$a = 0;
for($i = 0; $i < $count; $i++) {
echo " \n";
echo " \n";
$a++;
if(trim($liste[$a]) !== “”) {
echo " \n";
} else {
echo " \n";
}
$a++;
echo " \n";
}
echo “
<img src="".$liste[$a]."">
".$liste[$a]."
<img src="".$liste[$a]."">
".$liste[$a]."
 
”;
?>
[/code]

DANKE, das ist echt schon fast perfekt :hail:

Ich habe jetzt schon seit Tagen versucht,
dass ich das mit noch mehr Spalten nach rechts hin bekomme…
nix zu machen. Ich bin am verzweifeln.

Wie bekommt man das hin ?

hi, habs mal überarbeitet:

[code]<?php
$verz = opendir(’.’);
$liste = array();
while (false !== ($file = readdir($verz))) {
if (preg_match(’/.(gif|png|jpe?g)$/i’, $file)) {
$liste[] = $file;
}
}
closedir($verz);
sort($liste);

$cols = 4; //hier die spalten einstellen
$rows = ceil(count($liste) / $cols);

echo “<table class=“maintable” cellspacing=“0”>\n”;
$a = 0;
for($i = 1; $i <= $rows; $i++) {
echo "

\n";
for($j = 1; $j <= $cols; $j++) {
	if(!empty($liste[$a])) {
		echo "  <td><img src=\"".$liste[$a]."\" alt=\"".$liste[$a]."\"><br>".$liste[$a]."</td>\n";
	} else {
		echo "  <td>&nbsp;</td>\n";
	}
$a++;
}
echo " </tr>\n";

}
echo “\n”;
?>[/code]
beispiel mit $cols = 4; :
http://hummer.bplaced.de/tabletest/table.php

1000 Dank hummer

:hail: :hail: :hail:

PERFEKT