Paging von Dateien
Andi
- php
0 Tom
Hi,
Ich habe eine Frage. Ich habe einen Ordner in dem Bilder gespeichert sind.
Alle Bilder auszulesen und aufzuführen ist kein Problem.
$bilderreihe = "3"; //Anzahl Bilder in einer Reihe
$beschreibungsdatei = "beschreibung.txt";
$zaehlen = "1";
$loeschvariable = $ordner;
$ordner = "pics/".$ordner;
$handle = opendir($ordner);
$file = file ("$ordner/beschreibung.txt");
list ($var,$veranstaltung) = explode ("=",stripslashes($file[0]));
list ($var,$ort) = explode ("=",stripslashes($file[1]));
list ($var,$datum) = explode ("=",stripslashes($file[2]));
list ($var,$fotografen) = explode ("=",stripslashes($file[3]));
echo "
<center>
<fieldset style='width:90%;'>
<legend>".$veranstaltung."</legend>
<br>
<div class='abstandtop' align='left'><b>Location:</b> ".$ort."<br><b>Datum:</b> ".$datum."<br><b>Fotografen:</b> ".$fotografen."</div><br><br>
<table class='tbl' width='100%' cellspacing='0' cellpadding='6'>
<tr>";
while ($file = readdir ($handle)) {
if($file != "." && $file != "..") {
if(is_dir($ordner."/".$file)) {
echo "/".$file."<br/>";
} else {
// kompletter Pfad
$compl = $ordner."/".$file;
//Bildberechnung für Breite und Höhe der Thumbs
$image_info = getimagesize ( $compl );
$filetype = $image_info[2];
if ( $filetype == 1 ) { $image = imagecreatefromgif ( $compl ); }
if ( $filetype == 2 ) { $image = imagecreatefromjpeg ( $compl ); }
if ( $filetype == 3 ) { $image = imagecreatefrompng ( $compl ); }
$width = imagesx ( $image );
$height = imagesy( $image );
$height_thumb = 120;
$width_thumb = $width / ( $height / $height_thumb );
if($zaehlen == $bilderreihe) {
if($file != $beschreibungsdatei) {
echo "<td align='center'><a href='index.php?aktion=bildanzeigen&bild=".$compl."' target='popupname' onclick=\"javascript:popup('index.php?aktion=bildanzeigen&bild=".$compl."','popupname','width=650,height=430,directories=no,toolbar=no,location=no,menubar=no,scrollbars=yes,status=no,resizable=no,dependent=no')\"><img src='".$compl."' width='".$width_thumb."px' height='".$height_thumb."px' style='border:#000000; border-width:1px; border-style:solid;'></a></td></tr><tr>";
$zaehlen = "1";
}
}
else {
if($file != $beschreibungsdatei) {
echo "<td align='center'><a href='index.php?aktion=bildanzeigen&bild=".$compl."' target='popupname' onclick=\"javascript:popup('index.php?aktion=bildanzeigen&bild=".$compl."','popupname','width=650,height=430,directories=no,toolbar=no,location=no,menubar=no,scrollbars=yes,status=no,resizable=no,dependent=no')\"><img src='".$compl."' width='".$width_thumb."px' height='".$height_thumb."px' style='border:#000000; border-width:1px; border-style:solid;'></a></td>";
$zaehlen++;
}
}
}
}
}
closedir($handle);
echo "</tr>
</table>
</fieldset>
</center>";
Aber ich kriege es nicht hin, dass 12 Bilder auf einer Seite angezeigt werden und man zu den anderen Seiten blättern kann (Stichwort Paging). Weiß jemand wie ich das machen kann oder kann mir helfen?
Wenn ich Paging mit Hilfe von Zeilen machen will (Gästebuch) ist das auch kein Problem.
$gbook = file($dateiname);
###########Seitenzahlen###########
$eintraege = 10; // Anzahl der Eintraege pro Seite
if(!isset($limit)) $limit = 0;
$anz = count($gbook);
$anz_pages = ceil($anz/$eintraege);
$curr_page = $limit/$eintraege;
######################
$x = $limit;
$max = $limit + $eintraege;
do
{
$eintrag ++;
$nummer = 1 + $anz - $eintrag;
if ($x == $max || $x > $anz || $anz == $x) break;
$line = trim($gbook[$x]);
$gbook[$x] = explode("||",$line);
$name = $gbook[$x][0];
$ip = $gbook[$x][1];
$mail = $gbook[$x][2];
$icq = $gbook[$x][3];
$homepage = $gbook[$x][4];
$datum = $gbook[$x][5];
$text = make_smilies($gbook[$x][6]);
$kommentar = $gbook[$x][7];
require ("table.tpl");
$x++;
}while(1);
echo "<table cellspacing=\"0\" cellpadding=\"2\" width=\"430\"><tr><td><div align=\"left\"><font class=\"small\"><b>Einträge: $anz<br>";
echo "Seite:";
###########Seitenzahlen###########
for($a=0;$a<$anz_pages;$a++)
{
if($a != $curr_page) {
echo " <a href=\"index.php?aktion=gaestebuch&limit=". ($a*$eintraege) ."\" target=\"_self\">". ($a+1) ."</a></b>";
}
else {
echo " [".($a+1)."]</b>";
}
}
######################
Wenn ich aber das Ganze verbinden will, bekomme ich eine Endlosschleife bei der irgendwann der PC auf dem ich das Script teste, abstürzt.
Danke im Voraus.
Gruß Andi
Hello,
Zur Erstellung der Blätterbuttons:
http://forum.de.selfhtml.org/archiv/2004/8/t87972/#m523873
Außerdem schau Dir mal die Funktion glob() an.
http://de3.php.net/manual/de/function.glob.php
Und dann kannst Du die Namen der Create-Funktionen einfach in ein Array packen
http://forum.de.selfhtml.org/archiv/2004/9/t89211/#m532846
Wenn dann der Index im erlaubten Bereich ist, muss Du nur noch zugreifen.
Und die
function null()
{
return false;
}
Hilft Dir für alle "Lücken" im Array weiter.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom