HATE
11. Mai 2008 um 22:34
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
11. Mai 2008 um 22:43
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
11. Mai 2008 um 23:04
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
12. Mai 2008 um 08:28
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
12. Mai 2008 um 18:06
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
13. Mai 2008 um 15:32
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 ?
hummer
13. Mai 2008 um 16:43
9
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
18. Mai 2008 um 21:14
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
18. Mai 2008 um 21:55
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