WebWork Magazin - Webseiten erstellen lassen, Online Medien, html

Webhoster, Webhosting Provider und Domain registrieren

Home | Registrieren | Einloggen | Suchen | Aktuelles | GSL-Webservice | Suleitec Webhosting
Reparatur-Forum | Elektro forum | Ersatzteilshop Haushalt und Elektronik


Homepage und Webhosting-Forum

Scripte und Programme für PHP, MYSQL. Diskussionen zur Programmierung im Web. Fragen zu CMS, Blogsoftware, Shops, Newsletter und vielen weiteren Scripten.


Forum » PHP & MySQL » PHP: Bildanzeigescript-Problem » Antworten
Benutzername:
Passwort: Passwort vergessen?
Inhalt der Nachricht: Fett | Kursiv | Unterstrichen | Link | Bild | Smiley | Zitat | Zentriert | Quellcode| Kleiner Text
Optionen: Emailbenachrichtigung bei Antworten
 

PHP: Bildanzeigescript-Problem
von languitar
kein problem
von cmuecke
Ahh...jetzt verstehe ich das genau. Danke für Deine Hilfe!


---
http://sylver-web.de
Weisheiten:
- Das Wesen der Dinge hat die Angewohnheit, sich zu verbergen. - Heraklit (griech. Philosoph)
- Wären alle Menschen gleich, würde im Prinzip einer genügen. (unbekannt)
von languitar
hm, die Ordner müssen angelegt sein. Eigentlich läuft es bei mir zuhause problemlos. Vielleicht hast du doch noch was weo vergessen oder es ist was hier im Forum futsch gegangen.
Also das mit den Zeilen ist folgender Part:
1: 
2: 
3:
//Berechnung der vollen Reihen und der restlichen Bilder
$reihen = floor(sizeof($dateien) / $length);
$rest = sizeof($dateien) - $reihen * $length;

ich rechne mir hier erst aus wie viele ganze Reihen ich mache (floor rundet ab) und in der nächsten Zeile wir dann der Rest ausgerechnet (also die länge der unvollständigen Zeile).
Wie das ausgegeben wird musst du noch mal im Code nachgucken.
von cmuecke
Erstmal danke für die schnelle Antwort! Jedoch funktioniert das Script net richtig. Was immer ausgegeben wird, ist ein schlichtes "n", obwohl ich die Ausgaben richtig gebackslashed habe.
Die Ausgabe von Thumbnails habe ich jedoch geschafft. Was ich nur noch irgendwie hinbekommen muss, ist die Ausgabe von mehreren Thumbs in einer Zeile, wie beschrieben. Wenn ich zum Beispiel 19 Bilder auf einer Seite habe, sollen nun 4 Zeilen gebildet werden, wobei jede 5 (bzw. 4) Bilder ausgibt.


---
http://sylver-web.de
Weisheiten:
- Das Wesen der Dinge hat die Angewohnheit, sich zu verbergen. - Heraklit (griech. Philosoph)
- Wären alle Menschen gleich, würde im Prinzip einer genügen. (unbekannt)
von languitar
Args, das war ein mal zu viel auf absenden geklickt. Ich hoffe der hat oben jetzt nicht zu viele Zeilenumbrüche reingemacht.

@Michael: Der braucht immer noch so lange mit dem weiterleiten, wenn man längere sachen postet
von languitar
gehe ich recht in der Annahme, dass du ein Fotoalbum machen willst?
Hier ist nen Script, dass ich mir mal gemacht hab:
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 
13: 
14: 
15: 
16: 
17: 
18: 
19: 
20: 
21: 
22: 
23: 
24: 
25: 
26: 
27: 
28: 
29: 
30: 
31: 
32: 
33: 
34: 
35: 
36: 
37: 
38: 
39: 
40: 
41: 
42: 
43: 
44: 
45: 
46: 
47: 
48: 
49: 
50: 
51: 
52: 
53: 
54: 
55: 
56: 
57: 
58: 
59: 
60: 
61: 
62: 
63: 
64: 
65: 
66: 
67: 
68: 
69: 
70: 
71: 
72: 
73: 
74: 
75: 
76: 
77: 
78: 
79: 
80: 
81: 
82: 
83: 
84: 
85: 
86: 
87: 
88: 
89: 
90: 
91: 
92: 
93: 
94: 
95: 
96: 
97: 
98: 
99: 
100: 
101: 
102: 
103: 
104: 
105: 
106: 
107: 
108: 
109: 
110: 
111: 
112: 
113:
<!doctype html public "-//W3C//DTD HTML 4.0 //EN">
<html>
<head>
<title>Fotoalbum</title>
<meta name="author" content="Johannes Wienke">
</head>
<body text="#000000" bgcolor="#3366CC" link="#FF0000" alink="#FF0000" vlink="#FF0000">
<?php
//Einstellungen
$PicPathIn = "bilder/";			//Verzeichnis mit Originalbildern
$PicPathOut = "bilder/out/";	//Ausgabeverzeichnis (wird automatisch generiert)
$array_types = array('jpg');	//erlaubte Dateitypen
$length = 3;					//Länge der Reihen

//Einlesen aller erlaubten Dateien in das Array $dateien
$dir = opendir("$PicPathIn");
while (($file = readdir($dir)) != false) {
    if (preg_match("/^index/", $file)) continue;
	if (preg_match("/..?$/", $file)) continue;
    foreach($array_types as $typ) {
		if (preg_match("/.".$typ."$/i", $file))
        	$dateien[] = $file;
    };
};

//Berechnung der vollen Reihen und der restlichen Bilder
$reihen = floor(sizeof($dateien) / $length);
$rest = sizeof($dateien) - $reihen * $length;

//Überprüfen, ob das Ausgabeverzeichnis für Thumbnails existiert. Wenn nicht, wird es angelegt.
if (!@opendir($PicPathOut)) {@mkdir($PicPathOut,0777);};

//Alle Bilder werden durchlaufen
for ($i=0;$i<sizeof($dateien);$i++) {
	// Orginalbild
	$bild = "$dateien[$i]";

   	// Bilddaten ermitteln
	$size = getimagesize("$PicPathIn"."$bild");
	$breite = $size[0];
	$hoehe = $size[1];

	//Größe für Thumbnail berechnen (abhängig von Hoch- oder Querformat)
	if ($breite > $hoehe) {
		$neueBreite = 100;
		$neueHoehe = intval($hoehe * $neueBreite / $breite);
	}
	else {
	    $neueHoehe = 100;
	    $neueBreite = intval( $breite * $neueHoehe / $hoehe);
	};

    //Wenn Thumbnail noch nicht vorhanden, dann erstellen
	if (file_exists($PicPathOut."k_".$bild)==false) {
		if($size[2]==2) {
        	$altesBild = ImageCreateFromJPEG("$PicPathIn"."$bild");
			$neuesBild = imageCreate($neueBreite,$neueHoehe);
			imageCopyResized($neuesBild,$altesBild,0,0,0,0,$neueBreite,$neueHoehe,$breite,$hoehe);
			ImageJPEG($neuesBild,"$PicPathOut"."k_"."$bild");
		};
	};

    //Arrays mit Daten für die Ausgabe erstellen
	$thumbnails[] = $PicPathOut."k_".$bild;
	$neueBreiten[] = $neueBreite;
	$neueHoehen[] = $neueHoehe;
};

//Ausgeben voller Reihen
for ($i=0;$i<$reihen;$i++) {
    for ($j=0;$j<$length;$j++) {
    	$bilder[] = $i * $length + $j;
    };
    $bild1 = $bilder[0];
    echo "
    	<table border="0" cellpadding="0" cellspacing="0" style="margin-bottom:16px">
		<tr>
    			<td width="100" align="center" style="border: 1px black solid"><img src="$thumbnails[$bild1]" width="$neueBreiten[$bild1]" height="$neueHoehen[$bild1]" border="0" alt=""></td>";
    for ($k=1;$k<sizeof($bilder);$k++) {
        $bildnow = $bilder[$k];
        echo "  <td width="16" height="100"></td>
    			<td width="100" align="center" style="border: 1px black solid"><img src="$thumbnails[$bildnow]" width="$neueBreiten[$bildnow]" height="$neueHoehen[$bildnow]" border="0" alt=""></td>";
    };
    echo "
  		</tr>
        </table>";
    unset($bilder);
};

//Ausgaben der restlichen Bilder
for ($j=0;$j<$length;$j++) {
    	$bilder[] = $reihen * $length + $j;
    }
    $bild1 = $bilder[0];
	if ($rest>0) echo "
	<table border="0" cellpadding="0" cellspacing="0" style="margin-bottom:16px">
		<tr>
     			<td width="100" align="center" style="border: 1px black solid">";
	if ($rest>0) echo "<img src="$thumbnails[$bild1]" width="$neueBreiten[$bild1]" height="$neueHoehen[$bild1]" border="0" alt="">";
    if ($rest>0)echo "</td>";
	for ($k=1;$k<$length;$k++) {
    	$bildnow = $bilder[$k];
        echo "  <td width="16" height="100"></td>
    			<td width="100" align="center" style="border: 1px black solid">";
        if ($k<$rest) echo "<img src="$thumbnails[$bildnow]" width="$neueBreiten[$bildnow]" height="$neueHoehen[$bildnow]" border="0" alt="">";
        echo "</td>";
    };
  	echo "</tr>
	</table>";

?>
</body>
</html>


Vielleicht hilft dir das ja.

Edit: aaaaaaargs! in allen echo-Befehlen musst du vor die Anführungszeichen im HTML-Code natürlich backslashes packen. Die hat mir das Forum gerade geklaut.
von cmuecke
Ich habe ein vermaledeites Problem: Der Verzeichnisinhalt wird eingelesen, Anzahl an Bildern bestimmt und über eine foreach-Schleife die namen der Bilder in einem Array gespeichert. Nun soll eine bestimmte Anzahl an Bildern in einer Zeile ausgegeben werden, beispielsweise 5 Bilder pro Zeile. Ich weiß jedoch nicht, wie ich das machen kann. Habe es nur geschafft, ein Bild pro Zeile auszugeben
Danke im Voraus!


---
http://sylver-web.de
Weisheiten:
- Das Wesen der Dinge hat die Angewohnheit, sich zu verbergen. - Heraklit (griech. Philosoph)
- Wären alle Menschen gleich, würde im Prinzip einer genügen. (unbekannt)

Nach oben