Automatische Seitenanzahl ohne Sql

rich

Mitglied
Hallo Ihr lieben,
ich habe folgendes anliegen =)

ich lese mit folgendem Code:

PHP:
<?php
$ordner = "app/";
$alledateien = scandir($ordner);

foreach ($alledateien as $datei) {
    $dateiinfo = pathinfo($ordner."/".$datei);
    $size = ceil(filesize($ordner."/".$datei)/1024);
    if ($datei != "." && $datei != "..") {

            //Bildtypen sammeln
            $bildtypen= array("jpg", "jpeg", "gif", "png");
            //Dateien nach Typ prüfen, in dem Fall nach Endungen für Bilder filtern
            if(in_array($dateiinfo['extension'],$bildtypen))
            {
    ?>


<?php echo $dateiinfo['filename']; ?>
<?php echo $size ; ?> KB
usw...


<?php } ?>
<?php
    };
 };
?>

den Inhalt des Ordners app aus...
das funktioniert auch so weit ganz gut

ist es möglich eine Automatische Seitennavigation anzeigen zu lassen !?

also zb sollen nur 6 dateien (infos über die daten in dem apps Ordner) ausgelsen werden,
da es aber mehr als 6 dateien sind, soll jetzt eine Seite 2 automatisch erstellt werden.

usw usw usw usw....

eine Datenbank soll nicht angewendet werden.

ist das machbar !?

liebe grüße`
rich
 
Du könntest alle Dateinamen aus dem Ordner in ein Array laden.
Je nach gewählter Seite, welche du ja irgendwo zur Auswahl stellen musst, kannst du dann das Array von 0-5, 6-11, 12-16 etc. anzeigen lassen.
 
Ich habe zwar noch nicht mit Ordner/Datei-Strukturen gearbeitet, aber ich probiers mal...
PHP:
<?php 
$page = $_GET['page']; //aktuelle Seite
if(!isset($_GET['page'])) $page = 1;
if(!is_numeric($page)) $page = 1;
$files = 6; //Dateien pro Seite
$ordner = "app/"; 
$alledateien = scandir($ordner);

if($page == 1)
{
    $start = 0;
} else {
    $start = ($files-1)+($page-1)*$files;
}

for($i = $start; $i <= $i+$files; $i++)
{
    echo $alledateien[$i];
}
?>

Getestet habe ich das nicht, hab keine Möglichkeit zurzeit...
Edit: Eine Pagination hab ich jetzt völlig vergessen, muss ich nochmal drüber nachdenken. :)
 
Zuletzt bearbeitet:
also die dateien im Ordner werden angezeigt... aber folgendes bekomme ich vom Script...

Notice: Undefined offset

und des endlos -.-
 
PHP:
for($i = $start; $i <= $files; $i++)
{
    echo $alledateien[$i];
}


So müsste es passt.

Das Problem war
PHP:
$i <= $i+$files

d.h. die For-Schleife hört erst auf wenn das eintrifft, und soweit ich das überblicken kann, wird das Argument nie True
 
Naja, aber wenn $start = 5, dann ist $i auch 5. Wenn $files jetzt 6 ist, dann zeigt es doch nur eines an?

Wenn $start = 5, dann ist $i == 5. somit ist $i+$files = 5+6 = 11. Vielleicht hab ich auch das Grundprinzip von den Schleifen noch nicht verstanden. ^^
 
ja das Funktioniert..
ich lade mal ein Beispielbild hoch zum besseren Verständnis...

hier werden schon Daten aufgelistet
im Grunde brauch ich nur noch ein Script , was mir die vorhandenen Daten im Ordner ausliest
aber nicht ausgibt und dann unten eine Seitenansicht ausgibt
(je nach dem wie viele Dateien in dem Ordner gespeichert sind)

zB bei 6 Dateien im Ordner (Seiten 1)
bei 6-12 Dateien (Seiten 2)
usw...

also demnach unten im Footerbreich:

Seiten << 1 - 2 - 3 - 4 - 5 >>

wisst ihr was ich meine !?

lg
 

Anhänge

  • tp.PNG
    tp.PNG
    35,8 KB · Aufrufe: 17
Klar weiß ich was du meinst. Ist ja eigentlich nicht wirklich schwer...

PHP:
echo '<< ';
$counter = 1;
for($i = sizeof($alledateien); $i <= 0; $i-$files)
{
    echo $counter;
    if($counter != 1) echo ' - ';
    $counter++;
}
echo ' >>';

Wie immer ungetestet...
Wie du die aktuelle Seite dann noch fett darstellen lässt, dürfte kein Problem sein, oder?
 
Zurück