HATE
May 11, 2008, 10:34pm
1
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> ";
?>
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 !!!
Scram
May 11, 2008, 10:43pm
2
[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…
HATE
May 11, 2008, 11:04pm
4
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)
bcg
May 12, 2008, 8:28am
6
da hat er schon recht…
aber ansonsten kann man sowas mit ner $i und ner if abfrage machen…
wenn du verstehst was ich meine
mfg Joey
HATE
May 12, 2008, 6:06pm
7
[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
mfg Joey[/quote]
hmmm…werd ein wenig rumprobieren.
Aber würde mich natürlich über den einen oder anderen Schnipsel freuen
HATE
May 13, 2008, 3:32pm
8
Ich bekomme es einfach nicht hin
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.
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 " <img src="".$liste[$a].""> ".$liste[$a]." \n";
$a++;
if(trim($liste[$a]) !== “”) {
echo " <img src="".$liste[$a].""> ".$liste[$a]." \n";
} else {
echo " \n";
}
$a++;
echo " \n";
}
echo “
”;
?>
[/code]
HATE
May 18, 2008, 9:14pm
10
DANKE, das ist echt schon fast perfekt
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 ?
hummer
May 18, 2008, 9:55pm
11
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> </td>\n";
}
$a++;
}
echo " </tr>\n";
}
echo “\n”;
?>[/code]
beispiel mit $cols = 4; :
http://hummer.bplaced.de/tabletest/table.php