CronJob-Service
bei SELFPHP mit ...
|
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden |
05.07.2007, 12:37:11
|
Anfänger
|
|
Registriert seit: Apr 2007
Beiträge: 12
|
|
Bilder aus Verzeichnis auslesen und wie in Zweierreihen ausgeben?
Hallo Zusammen,
ich tüfftle schon seit geraumer Zeit an einem Problem, bei dem ich einfach nicht weiter komme. Ich möchte aus einem Verzeichnis alle .jpg`s auslesen und auf einer Webseite ausgeben. Das klappt auch alles wunderbar. Nun möchte ich diese Ausgabe der Bilder aber so formatieren, dass die Bilder in Zweierreihen angezeigt werden, also z.B. eine Tabelle mit zwei Spalten und entsprechend der Bilderzahl Zeilen. Zum verdeutlichen hier mal das Script:
PHP-Code:
<?PHP
function listPicture($dir=".",$type="jpg")
{
$x = 0;
foreach (glob($dir."*.".$type) as $filename)
{
$picture[$x]['file'] = $filename;
$x++;
}
return $picture;
}
$pic = listPicture("img/","jpg");
for($x=0;$x<count($pic);$x++)
{
$file = $pic[$x]['file'];
echo "<table width=\"75%\" border=\"0\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\">
<tr align=\"center\" valign=\"middle\">
<td width=\"50%\"><img src=\"$file\"></td>
<td width=\"50%\"></td>
</tr>
</table>";
}
?>
Wenn ich die Variable $file nun auch in die zweite Tabellenzelle packe, erscheinen logischerweise die Bilder immer doppelt nebeneinander und genau das ist mein Problem. Wie stelle ich es an, dass die Bilder in Zweierreihe angezeigt werden aber nicht doppelt?
Habe ein Brett vor dem Kopf und komme einfach nicht weiter. Wäre nett, wenn mir Jemand auf die Sprünge helfen würde.
Danke, Carlos
|
05.07.2007, 12:51:38
|
|
Anfänger
|
|
Registriert seit: Jul 2007
Ort: Laggenbeck
Alter: 36
Beiträge: 31
|
|
AW: Bilder aus Verzeichnis auslesen und wie in Zweierreihen ausgeben?
Hallo carlos7262
bin noch neu hier
aber ich hab eine Idee
nämlich das du jedes zweite Bild mit einer anderen Variable($y) angibst, die dun dann in die zweite Spalte schreibst
vielleicht so
mfg Rüdiger
|
05.07.2007, 12:53:00
|
Member
|
|
Registriert seit: Feb 2006
Beiträge: 883
|
|
AW: Bilder aus Verzeichnis auslesen und wie in Zweierreihen ausgeben?
Mal ein schneller Gedanke:
Du hast mit count($pic) ja die Anzahl der Bilder. Lass eine for-Schleife in der linken Spalte bis zur Hälfte hochzählen und eine zweite in der rechten Spalte die zweite Hälfte....ungetestet
|
05.07.2007, 13:08:44
|
Junior Member
|
|
Registriert seit: Jun 2004
Beiträge: 473
|
|
AW: Bilder aus Verzeichnis auslesen und wie in Zweierreihen ausgeben?
Das wird schwierig, denn er muss die Tabelle zeilenweise schreiben und nicht spaltenweise...
Wie möchtest du die Ausgabe (z.B. von dat1, dat2, dat3, dat4, dat5) denn haben?
dat1 | dat2
dat3 | dat 4
dat5 |
oder
dat1 | dat4
dat2 | dat5
dat3 |
|
05.07.2007, 13:17:09
|
Anfänger
|
|
Registriert seit: Apr 2007
Beiträge: 12
|
|
AW: Bilder aus Verzeichnis auslesen und wie in Zweierreihen ausgeben?
es sollte möglichst in der Form
dat1 | dat2
dat3 | dat 4
dat5 |
sein.
|
05.07.2007, 15:46:36
|
Junior Member
|
|
Registriert seit: Jun 2004
Beiträge: 473
|
|
AW: Bilder aus Verzeichnis auslesen und wie in Zweierreihen ausgeben?
Tausch mal deine for-Schleife gegen dies hier....
Habe die table-Tags nach außen gesetzt, damit nicht für jede Zeile eine neue Tabelle erstellt wird.
PHP-Code:
echo '<table width="75%" border="0" align="center" cellpadding="0" cellspacing="0">';
for($x=0;$x<count($pic);$x+=2)
{
echo '
<tr align="center" valign="middle">
<td width="50%"><img src="'.$pic[$x]['file'].'"></td>';
if(array_key_exists($x+1,$pic))
{
echo '<td width="50%"><img src="'.$pic[$x+1]['file'].'"></td>';
}
else
{
echo '<td width="50%"></td>';
}
echo '</tr>';
}
echo '</table>';
Geändert von Raketenmann (05.07.2007 um 15:47:44 Uhr)
|
05.07.2007, 16:38:28
|
|
Member
|
|
Registriert seit: Jul 2006
Ort: Göttingen/Deutschland
Alter: 35
Beiträge: 586
|
|
AW: Bilder aus Verzeichnis auslesen und wie in Zweierreihen ausgeben?
Morgen!
Also ich halte die Idee mit dem count() garnicht für so schlecht. Du zählst also mit dem count() die Einträge in deinem Array. Dann ermittelst du mit dem %-Operator, ob der Wert des momentan einzutragenden Arrayelements gerade oder ungerade ist. Jenachdem ob ungerade oder gerade, werden die zeilen erstellt.
PHP-Code:
<?php
function listPicture($dir=".",$type="jpg") { $x = 0; foreach (glob($dir."*.".$type) as $filename) { $picture[$x]['file'] = $filename; $x++; } return $picture; }
$pic = listPicture("img/","jpg");
echo "<table>" for($x=0;$x<=count($pic);$x++) { $file = $pic[$x]['file']; if($x % 2;) //wenn gerade { echo "<tr><td>" . $file . "</td>"; } else //wenn ungerade { echo "<td>" . $file . "</td></tr>"; }
} if(count($pic) % 2;) { echo "</tr>"; } echo "</table>"; ?>
Zudem meine ich, dass es wichtig ist, dass es wie folgt heißt, da das letzte Bild sonst nicht angezeigt wird.
PHP-Code:
<?php $x<=count($pic); ?>
MfG, Andy
Geändert von Socrates (05.07.2007 um 18:45:01 Uhr)
|
05.07.2007, 17:06:30
|
Anfänger
|
|
Registriert seit: Apr 2007
Beiträge: 12
|
|
AW: Bilder aus Verzeichnis auslesen und wie in Zweierreihen ausgeben?
Kompliment und herzlichen Dank Raketenmann, es funktioniert prima. Habe lange über diesem Problem gesessen und ich denke, da wäre ich so wohl nicht drauf gekommen, dazu reichen meine php-Kenntnisse leider noch nicht. Bin schon eine Weile am php pauken, bleibe aber immer an irgendwelchen Problemen wie diesen hängen. Naja, will hoffen, dass es irgendwann mal zu einem eigenen vernünftig funktionierenden Script reicht.
Nochmals Danke auch an alle anderen, die sich dazu gemeldet haben.
Gruß, Carlos
|
05.07.2007, 20:41:23
|
Anfänger
|
|
Registriert seit: Apr 2007
Beiträge: 12
|
|
AW: Bilder aus Verzeichnis auslesen und wie in Zweierreihen ausgeben?
Hallo Raketenmann,
habe mir deine Scriptlösung die ganze Zeit angesehen und versucht es zu verstehen wie es funktioniert, komme aber leider nicht dahinter. Könntest Du es kurz beschreiben?
Gruß, Carlo
|
06.07.2007, 01:16:01
|
|
SELFPHP Guru
|
|
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
|
|
AW: Bilder aus Verzeichnis auslesen und wie in Zweierreihen ausgeben?
Wow! Und gleich ne Doppel-Schleife, wo eine vollkommen ausreicht...
PHP-Code:
function listPicture($dir=".",$type="jpg") { return glob($dir."*.".$type); }
$pic = listPicture("img/","jpg");
echo '<table width="75%" border="0" align="center" cellpadding="0" cellspacing="0">';
for($x=0;$x<count($pic);$x+=2) { echo ' <tr align="center" valign="middle"> <td width="50%"><img src="'.$pic[$x].'"></td>'; if(array_key_exists($x+1,$pic)) { echo '<td width="50%"><img src="'.$pic[$x+1].'"></td>'; } else { echo '<td width="50%"> </td>'; } echo '</tr>'; } echo '</table>';
Geändert von meikel (†) (06.07.2007 um 01:28:13 Uhr)
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Themen-Optionen |
|
Ansicht |
Linear-Darstellung
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 09:22:00 Uhr.
|