PHP Bilder Script

nfsmw15

Mitglied
Hallo,

ich ahbe ein PHP Script das alle Bilder die in einem Ordner sind anzeigt. Das Problem ist jetzt ich bekomme es nur hin das diese Bilder untereinander angezeigt werden. Ich würde die gerne in kleiner ansicht 4x3 anzeigen und dann die Bilder die "zu viel" sind unten mit Seitenzahlen die zwischen Weiter und Zurück stehen anzeigen.

Hier ist mal das Script was ich habe:

PHP:
<?php
// -----------------------------------------
$path = '/data/';
$img_path_up = '/srv/www/httpd/phost/p/net/pytalhost/privat/web/data/';
// -----------------------------------------
?>
<html>
<head>
<title></title>
<style type="text/css">
	<!--
	body, table{
		color: #000;
		font: 11px Verdana, Tahoma, Arial, Helvetica, sans-serif;
	}
	div{
		margin:0;
		padding:0;
	}
	-->
</style>
</head>
<body>
<table border="0" bordercolor="Gray" bgcolor="DarkGray" cellspacing="2" cellpadding="2" width="500">
<?
$i=0;
$verz=opendir ($img_path_up);
while (false !== ($file = readdir($verz))) {
	if (filetype($img_path_up.$file)!="dir"){
		$i++;
		echo '<tr bgcolor="Gainsboro">';
		echo '	<td><img src="http://'.$_SERVER['HTTP_HOST'].$path.$file.'" alt="'.$file.'" border="0"></td>';
		echo '</tr>';
	}
}
if($i==0){
	echo '<tr bgcolor="Gainsboro">';
	echo '	<td colspan="4">Es sind noch keine Bilder vorhanden.</td>';
	echo '</tr>';
}
closedir($verz);
?>
</table>
</body>
</html>
 
Hi,

also die Begrenzung der Bilder kriegst du ganz leicht hin, indem du im img-TAG width und height Werte übergibst. In SelfHTML dürfte dazu auch was stehen. Die Sache mit den Seiten ist schon komplizierter und bedarf anstrengenden Überlegungen. Mach dir erstmal ein Bild von dem was du hast, bzw. was du haben solltest:

-Die Anzahl der Bilder, die pro Seite ausgegeben werden sollen
-Die Gesamtanzahl der Bilder
-Die "aktuelle Seite"

Mit ein bischen Überlegen musst du aus diesen Infos die mögliche Seitenanzahl berechnen, die Seitenzahlen ausgeben und dann überlegen, wie man die gewünschten Bilder für die jeweilige Seite herauskriegt.

Gruß
cesupa
 
Also die gesamt Bilder Anzahl kann ich nicht bestimmen weil die sich jeden Tag ändern könnte. Deswegen soll dieses Script auch die Bilder aus dem Ordner auslesen.
Was dieses Script welches ich gepostet auch macht.

Die Zahl der Bilder auf einer Seite habe ich schon am Anfang gesagt 4x3 Bilder also 12 Bilder und von der Größe dieser einzelnen Bilder war nie die rede das weiß ich auch schon selber wie man die verändert.

Ach ja und die Seiten Zahl variiert ja auch wenn die Bilder zahl variiert.

Das jetzige PHP Script gibt ja auch jetzt schon die Bilder aus nur alle untereinander.

Wenn ich das mit einer Tabelle mache dann werden die Bilder immer doppelt angezeigt. Also muss wahrscheinlich auch noch irgendwas am PHP Script geändert werden.

So würde ich mir das etwa vorstellen:
bilder_script.jpg
 
Also die gesamt Bilder Anzahl kann ich nicht bestimmen weil die sich jeden Tag ändern könnte. Deswegen soll dieses Script auch die Bilder aus dem Ordner auslesen.

Somit kennst du doch die Gesamtzahl der Bilder in dem Ordner :confused:

Und die Sache mit den 4x3 Bildern hab ich etwas missverstanden, das musst du dann natürlich einer Tabelle darstellen. Wüsste aber nicht warum da Bilder doppelt erscheinen sollten.

MfG
cesupa
 
Also ich ahbe das jetzt so gemacht:
PHP:
<?php
// -----------------------------------------
$path = '/data/';
$img_path_up = '/srv/www/httpd/phost/p/net/pytalhost/privat/web/data/';
// -----------------------------------------
?>
<html>
<head>
<title></title>
<style type="text/css">
    <!--
    body, table{
        color: #000;
        font: 11px Verdana, Tahoma, Arial, Helvetica, sans-serif;
    }
    div{
        margin:0;
        padding:0;
    }
    -->
</style>
</head>
<body>
<table border="0" bordercolor="Gray" bgcolor="DarkGray" cellspacing="2" cellpadding="2" width="500">
<?
$i=0;
$verz=opendir ($img_path_up);
while (false !== ($file = readdir($verz))) {
    if (filetype($img_path_up.$file)!="dir"){
        $i++;
    echo '<tr bgcolor="Gainsboro">';
    echo '    <td><img src="http://'.$_SERVER['HTTP_HOST'].$path.$file.'" alt="'.$file.'" width="60" height="30" border="0"></td>';
    echo '    <td><img src="http://'.$_SERVER['HTTP_HOST'].$path.$file.'" alt="'.$file.'" width="60" height="30" border="0"></td>';
    echo '    <td><img src="http://'.$_SERVER['HTTP_HOST'].$path.$file.'" alt="'.$file.'" width="60" height="30" border="0"></td>';
    echo '    <td><img src="http://'.$_SERVER['HTTP_HOST'].$path.$file.'" alt="'.$file.'" width="60" height="30" border="0"></td>';
    echo '</tr>';
    }
}
if($i==0){
    echo '<tr bgcolor="Gainsboro">';
    echo '    <td colspan="4">Es sind noch keine Bilder vorhanden.</td>';
    echo '</tr>';
}
closedir($verz);
?>
</table>
</body>
</html>


nur dann wird mir jedes Bild in einer neuen Reihe angezeigt und das selber Bild dahinter 3 mal wiederholt.
 
Du kannst zum Beispiel die Bilderpfade vorab schonmal in ein Array einlesen und dann gibst du je 4 Werte aus dem Array in eine Zeile aus.

Gruß
cesupa
 
Also so:

PHP:
$i = 0;
echo '<tr bgcolor="Gainsboro">';
$verz=opendir ($img_path_up);
while (false !== ($file = readdir($verz))) {
    if (filetype($img_path_up.$file)!="dir"){
        $i++;

        echo '    <td><img src="http://'.$_SERVER['HTTP_HOST'].$path.$file.'" alt="'.$file.'" width="60" 

height="30" border="0"></td>';
        }
    if($i % 4 == 0) 
    { 
        echo '</tr>';
    echo '<tr bgcolor="Gainsboro">';
    }
} 
echo '</tr>';

Jetzt werden 4 Bilder in einer Zeile angezeigt nur es werden alle Bilder auf einer Seite angezeigt.
 
Hi,

haste erstmal super gelöst, prima :)
Damit die Bilder mit einer Seitenfunktion versehen werden, würde ich dir aber trotzdem empfehlen, die Bildpfade erstmal in ein Array einzulesen, dann weißt du nämlich auch, wieiviele Bilder es insgesamt sind. Dann überlegst du dir halt was so eine Seite ausmacht, was du alles hast und was du für eine Seite alles brauchst. Dazu hab ich dir ja oben schon was geschrieben.

Wenn du dabei noch Probleme hast, helfe ich dir gerne weiter ;-)

Gruß
cesupa
 
Zurück